该提示不是错误而是 composer 旧安全检查失效所致,因 sensiolabs 数据库已于2023年底关闭;可通过禁用 security.advisories 配置、升级至 composer 2.6+ 或改用 symfony/security-checker 工具解决。

为什么 Composer 会报 “The security-advisories database is not available”
这个提示不是错误,而是 composer audit(或 composer security:audit)在尝试连接 SensioLabs 维护的旧安全数据库时失败了。该数据库早在 2023 年底已正式关闭,但部分 Composer 版本(尤其是 2.5.x 及更早)仍默认启用该检查逻辑,导致每次运行 composer audit 都会打印这句提示。
它不影响依赖安装、更新或项目运行,但会干扰 CI 日志、自动化脚本输出,也容易让人误以为存在真实安全风险。
如何禁用已失效的安全检查
最直接有效的做法是关闭该功能——因为数据库已不可用,继续尝试连接纯属无效请求。
- 全局禁用(推荐):
composer config -g security.advisories false - 仅当前项目禁用:
composer config security.advisories false - 若使用 Composer 2.6+,该配置项已默认为
false,升级即可消除提示
执行后,composer audit 将跳过该检查,不再输出那句提示。注意:这不是“绕过安全检查”,而是停用一个已失效的检查源。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
替代方案:用官方支持的 security-checker 工具
Composer 官方推荐改用独立工具 security-checker(现由 Symfony 团队维护),它基于 Symfony Security Advisories Database,数据持续更新且免费开放。
- 安装:
composer global require symfony/security-checker - 检查当前项目:
security-checker security:check - CI 中使用时建议加
--format=json便于解析 - 注意:该工具只检查
composer.lock,不支持实时依赖树分析
相比旧的 composer audit,它的响应更快、结果更准,且无任何废弃数据库调用。
升级 Composer 是一劳永逸的办法
Composer 2.6.0(2023-12 发布)起,默认将 security.advisories 设为 false,并移除了相关网络请求逻辑。如果你还在用 2.5.x 或更老版本,升级是最干净的解决路径。
- 升级命令:
composer self-update --2(确保升级到最新 2.x 版) - 验证版本:
composer --version,确认 ≥ 2.6.0 - 升级后无需额外配置,提示自动消失
别忽略 self-update 的权限问题——某些系统下需加 sudo,或因全局安装路径受限而失败,这时候就得手动下载二进制覆盖。










