根本原因是composer.lock中过期的dist.sha256与新镜像包不匹配,必须同步删除vendor和composer.lock、切回官方源、重装生成新锁文件,仅换镜像或清缓存无效。

为什么换镜像后 still hash verification failed
根本不是镜像“没生效”,而是你本地 composer.lock 里存的 dist.sha256 值,和当前镜像站返回的包不匹配——可能是镜像同步滞后、作者重推了 tag,或你之前用过其他源生成的 lock 文件。只改镜像配置、只清缓存、只删 vendor/,全都不管用。
-
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/后必须验证:运行composer config -g repo.packagist,输出得是{"type":"composer","url":"https://mirrors.aliyun.com/composer/"},否则配置没落库 - 项目级配置会覆盖全局:运行
composer config repositories,如果看到"type": "vcs"或自定义 URL,说明镜像根本没走 - 手动测 dist 包是否真能下载:从
composer install -v日志里复制类似https://mirrors.aliyun.com/composer/dists/vendor/package/1.2.3.zip的 URL,用curl -I看是否返回HTTP/2 200和合理Content-Length
删 vendor 不等于修复,必须连 composer.lock 一起清
composer.lock 是元数据源头,vendor/ 只是安装产物。留着旧 lock 文件跑 composer install,Composer 就会拿里面的老哈希去比对新下载的包,必然失败。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Windows 用户执行:
rd /s /q vendor & del composer.lock(注意是&连写,不是分号) - Linux/macOS 执行:
rm -rf vendor composer.lock - 删之前先备份:
cp composer.lock composer.lock.bak,以防依赖变更不可逆 - 别只清缓存:
composer clear-cache不动 lock 文件,无效
切回官方源重装才是保真关键步骤
国内镜像有 10–30 分钟同步延迟,尤其新发版或 dev 分支。想立刻验证是不是镜像问题,就得绕过镜像,直连 packagist.org 拉最新快照。
- 先切回官方源:
composer config -g --unset repos.packagist(或显式设为https://packagist.org) - 清缓存:
composer clear-cache - 再跑:
composer install --no-cache -v,观察日志里实际请求的 URL 是否变成packagist.org,且能成功下载并解压 - 若成功,说明就是镜像没跟上;等 15 分钟后再切回阿里云,或直接换华为云镜像(已知同步更快)
哪些操作只是掩耳盗铃
临时禁用校验看似能“跑通”,但掩盖了包内容已错位的事实。Composer 2.2+ 已标记相关机制为 deprecated,未来版本会移除,且生产环境绝对不可用。
-
COMPOSER_DISABLE_CHECKSUM_VERIFY=1 composer install:仅用于快速定位是否中间层污染(比如企业网关注入 HTML),不能作为修复手段 -
composer config -g secure-http false:同时关闭 HTTPS 强制要求,比关 checksum 更危险 -
--ignore-platform-reqs或--no-plugins:不影响哈希校验逻辑,对hash verification failed完全无效 -
--force-checksums:不是修复,是让失败更早暴露——它强制校验失败时立刻退出,防止解压截断包
vendor + composer.lock)、切真源(packagist.org)、重生成(composer install)。镜像只是加速器,不是信任源;lock 文件才是你本地的“事实副本”,它错了,整个链就崩了。

















