Makefile执行make safety报错255的原因是什么?该如何修复?
错误255的含义
该错误是Make接收了目标执行命令的非零退出码后抛出的通用报错,对于你执行的safety check命令来说,退出码255是工具的预设返回值,代表已扫描到存在安全风险的依赖包,不属于命令执行失败的系统错误。
仅
safety命令触发报错的原因 Make会判断每个目标下执行命令的退出码:
- 你的
pipenv run test执行后退出码为0(测试用例全部通过),Make判定目标执行成功,无报错 pipenv run safety check只要扫描到至少一个存在漏洞的依赖,就会返回255作为退出码,Make收到非零退出码就会判定目标执行失败,抛出对应报错。
修复方案
你可以根据实际需求选择以下处理方式:
- 优先修复漏洞:查看
safety check输出的漏洞详情,执行pipenv update [对应依赖包名]升级存在风险的依赖,直到扫描无漏洞,命令返回0即可。 - 忽略所有漏洞提示(仅建议本地测试环境使用):给
safety命令添加--continue-on-error参数,修改后的Makefile对应规则如下:
safety: pipenv run safety check --full-report --continue-on-error
- 忽略指定漏洞:如果确认某个漏洞不会影响项目安全,可以从扫描结果中拿到对应CVE编号,添加
--ignore CVE-xxxx-xxxx参数即可,示例:
safety: pipenv run safety check --full-report --ignore CVE-2023-1234
内容的提问来源于stack exchange,提问作者Alipqb
相关产品推荐
相关产品推荐

