failed to extract vendor/package 是 zip 文件本身损坏,需先执行 composer clear-cache 清缓存、再删 vendor、加 --no-cache --force-checksums 重装,并验证镜像配置是否生效。

Failed to extract vendor/package 是 ZIP 本身坏了
这不是网络抖动或权限问题,而是 ~/.composer/cache/files/ 里那个 ZIP 文件校验失败了——Composer 下载后会用 dist.sha256 校验,不匹配就拒绝解压,且不会自动重试。典型错误如:Failed to extract vendor/symfony/console: unable to open archive 或 Content-Length mismatch。
- 别只删
vendor/:缓存里的坏 ZIP 还在,重装时照样被读取 - 先运行
composer clear-cache,再确认缓存目录是否真清空:ls -la $(composer config --global cache-dir)/files/ - 若只某个包反复出错(比如
monolog/monolog),可精准清理:rm -rf $(composer config --global cache-dir)/files/monolog/monolog - Windows 用户注意缓存路径是
%APPDATA%\Composer\Cache,不是~/.composer/cache
加 --no-cache 才算真正重拉
composer install 默认优先走本地缓存,即使你刚清过 cache,也可能因残留元数据或并发写入导致跳过下载。必须显式禁用缓存逻辑。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer install --no-cache是关键:它绕过所有缓存查找,强制从镜像源重新拉 ZIP 并校验 - CI/CD 中光靠
--no-cache不保险——流水线常挂载持久化缓存目录,得配合环境变量:COMPOSER_CACHE_DIR=/dev/null composer install --no-cache - 如果仍卡在同一个包,说明镜像源该版本 ZIP 确实损坏或已下线,运行
composer show vendor/package查当前可用版本,必要时手动调整composer.lock中的version字段
--force-checksums 比换镜像更关键
根本原因不是镜像“不支持 MD5 校验”,而是 Composer 从 2.2 开始只用 sha256,且所有官方镜像(包括阿里云、腾讯云)都严格同步 Packagist 的 dist.sha256 值——换镜像本身不会增加或修复校验能力。
-
--force-checksums强制在校验失败时抛出Invalid archive signature并退出,避免污染vendor/ - 它不依赖镜像是否“支持 MD5”——Composer 从不用 MD5,只认
sha256字段 - 该参数必须每次显式带上:
composer install --no-cache --force-checksums,不会写入配置 - 已缓存的损坏 ZIP 不会被自动跳过,所以必须配合
composer clear-cache
镜像配置失效会让损坏更难排查
你以为在走国内镜像,实际请求发到了 packagist.org,结果下载慢、中断、校验失败——而错误日志里根本不会提示“正在从 packagist.org 拉取”。
- 验证命令必须是:
composer config -g repo.packagist,输出得是{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - URL 必须以
/结尾,少一个斜杠就会拼成https://mirrors.aliyun.com/composer/packages.json→ 404 - 项目根目录若有
composer.json里含"repositories"字段,全局配置会被彻底忽略 - CI 环境(如 GitHub Actions)必须在 workflow 中显式运行配置命令,不能靠本地设置










