根源在 composer.lock 文件的 dist.sha256 哈希值未更新,清缓存或删 vendor 无法修正该值;必须删除 composer.lock 并重装才能同步元数据、缓存、镜像与锁文件。

为什么只清缓存或只删 vendor 一定失败
因为 hash verification failed 的根源在 composer.lock 文件里存的 dist.sha256 值,不是缓存或 vendor 目录本身。Composer 安装时会拿这个哈希去比对刚下载下来的 zip 包,哪怕镜像源已更新,只要 lock 文件没重生成,就永远对不上。
-
composer clear-cache只清~/.composer/cache/,composer.lock里的错误哈希纹丝不动 -
rm -rf vendor后跑composer install,仍用旧 lock 文件去校验新包,必然报错 - Windows 用户必须同时执行
rd /s /q vendor & del composer.lock,漏掉del composer.lock就白干
怎么确认当前生效的镜像源是不是你以为的那个
很多人运行了 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 就以为搞定了,但请求可能根本没走到镜像站——尤其 Composer 2.2+ 已废弃 repo.packagist 键名。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(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,说明镜像服务异常
删 lock + 切官方源重装才是唯一可靠路径
镜像同步有 10–30 分钟延迟,尤其遇到新发版或 dev 分支。别靠“换一个镜像”碰运气,得让 Composer 拉取同一时刻的元数据快照。
- 先切回官方源保真:
composer config -g --unset repositories.packagist.org(或显式设为https://packagist.org) - 清缓存:
composer clear-cache - 删干净:
rm -rf vendor composer.lock(Windows 用rd /s /q vendor & del composer.lock) - 重装生成新锁:
composer install—— 此时所有dist.sha256都来自同一时刻的packages.json - 等 30 分钟再切回阿里云;着急可换华为云,已知同步更快
CI/CD 中反复失败的隐藏干扰点
CI 环境里常见“清缓存→装包→又报错”,问题往往出在构建缓存污染或平台要求干扰,不是 Composer 本身。
- GitHub Actions/GitLab CI 默认不继承本地全局配置,必须在 workflow 中显式执行镜像设置命令
- 某些平台自动注入
repositories字段(如 Laravel Envoyer),会静默覆盖你配的镜像 -
composer update --refresh(≥2.5)比clear-cache更关键:它丢弃所有已缓存的packages.json,强制从当前源重拉 - PHP 内存限制太低或
json_decode()出错可能导致元数据解析截断,临时调高memory_limit再试










