必须同步删除vendor和composer.lock再重装,因为校验失败根源在composer.lock中硬编码的dist.sha256值,该哈希与新下载包不匹配,仅清缓存或只删vendor无法更新该值。

直接删 vendor 和 composer.lock,再清缓存、切镜像、重装——只做其中一两步,95% 的情况还会报 The checksum verification failed。
为什么清缓存或删 vendor 单独操作一定失败
校验失败的源头不在缓存目录或 vendor 里,而在 composer.lock 文件硬编码的 dist.sha256 值。Composer 安装时会拿这个哈希去比对刚下载的 zip 包,哪怕镜像已更新、缓存已清、vendor 已删,只要 composer.lock 还在,它就继续用旧值校验新包。
-
composer clear-cache只删~/.composer/cache/(Linux/macOS)或%APPDATA%\Composer\Cache\(Windows),composer.lock里的哈希完全不动 - 只
rm -rf vendor后跑composer install,仍复用旧lock文件,必然失败 - Windows 用户常漏掉
del composer.lock,必须配对执行:rd /s /q vendor & del composer.lock
怎么确认当前生效的中文镜像源是不是你以为的那个
很多人运行了 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 就以为搞定了,但实际请求可能根本没走到镜像站——尤其 Composer 2.2+ 已废弃 repo.packagist 键名,现在要用 repositories.packagist.org。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 查全局配置:
composer config -g repositories.packagist.org,正确输出应为{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}(注意末尾/) - 查项目级覆盖:
composer config repositories,若出现"type": "vcs"或自定义 URL,全局镜像直接失效 - 手动测通断:
curl -I https://mirrors.aliyun.com/composer/packages.json,必须秒回HTTP/2 200;卡住、返回 HTML 或 301,说明镜像服务异常
强制从中文镜像恢复的最小可靠动作链
不是“换一个镜像”,而是让 Composer 忘掉旧上下文,用新镜像从头建一套可信元数据。步骤缺一不可:
- 先切回官方源保真:
composer config -g --unset repositories.packagist.org(或显式设为https://packagist.org) - 清缓存:
composer clear-cache,确认输出含Clearing cache (all) - 删干净:
rm -rf vendor composer.lock(Windows 用rd /s /q vendor & del composer.lock) - 重装生成新锁:
composer install——此时所有dist.sha256都来自同一时刻的packages.json快照 - 等 10–30 分钟再切回阿里云;着急可换华为云,已知同步更快
CI/CD 和 Windows 环境下最容易被忽略的点
GitHub Actions/GitLab CI 默认不继承本地全局配置,必须在 workflow 中显式执行镜像设置命令;某些平台(如 Laravel Envoyer)会静默注入 repositories 字段,覆盖你配的镜像。
- 系统时间偏差超过 5 分钟会导致 HTTPS 证书校验失败,间接使下载中断或截断——运行
date确认 - 企业代理或防火墙篡改响应体(尤其 gzip 压缩流),导致 zip 文件损坏——临时关代理试
- WSL 用户别把缓存放在
/mnt/c/下,chown无效,必须用~/composer-cache这类原生路径

















