composer install 报 md5 mismatch 通常由 windows 中文路径编码不一致导致:gbk 文件名被按 utf-8 解码哈希,结果错误;验证方式是移至纯英文路径测试,修复需统一终端、git 和编辑器为 utf-8 无 bom 编码。

Composer install 时提示 Invalid package information: MD5 mismatch
这通常不是 Composer 或包本身的问题,而是本地文件系统对中文路径/文件名的编码处理不一致导致的。Windows 默认用 GBK(或 GB2312)存中文文件名,而 Composer 内部校验基于 UTF-8 编码计算 MD5 —— 当它读取一个含中文名的文件时,若实际字节流是 GBK 编码,却按 UTF-8 解码再哈希,结果必然错。
确认是否真由中文路径触发
执行 composer install -vvv,观察报错前最后几行输出,重点找类似这样的路径:
Reading /path/to/项目/配置文件.json
如果路径中含中文且显示乱码(如 \u4f60\u7684\u914d\u7f6e.json 没出现,反而看到问号或方块),大概率是终端或文件系统编码未对齐。更直接的办法是临时把项目移到纯英文路径下(比如 C:\test\myapp),再运行 composer install —— 如果不再报 MD5 错,就坐实了是中文路径惹的祸。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
绕过校验不是解法,改环境才是关键
别用 --ignore-platform-reqs 或删 vendor/composer/installed.json 强行跳过,那只是掩盖问题,下次更新仍会崩。真正要动的是三处:
- 确保你的终端(CMD/PowerShell/WSL)支持 UTF-8:PowerShell 中运行
[Console]::OutputEncoding = [Text.UTF8Encoding]::new();CMD 可用chcp 65001切换代码页 - 检查 Git 配置:
git config --global core.precomposeunicode true(macOS 必开),Windows 用户建议设git config --global core.autocrlf true并确认core.quotepath为false - 最关键的一步:在项目根目录加
.gitattributes文件,写入* text=auto eol=lf,并确保所有含中文的文件都以 UTF-8 无 BOM 保存(编辑器里手动选编码再另存)
实在无法统一编码时的临时应对
仅限开发机临时调试,生产环境禁用:
- 用
composer install --no-scripts --no-plugins跳过部分校验环节(但不能跳过包内容 MD5) - 手动清空
vendor/和composer.lock,再用composer clear-cache,然后从干净 UTF-8 环境中重新生成composer.lock(比如 CI 机器上跑一次composer update --lock,提交新 lock 文件) - 终极兜底:改用
composer create-project --no-install拉源码,再进目录手动cp -r替换 vendor(不推荐,维护成本高)
最常被忽略的一点:IDE 自动保存时可能偷偷转码。哪怕你改了终端和 Git,PhpStorm 或 VS Code 若设了“保存时转 GBK”,文件一存,MD5 就变——务必检查编辑器的默认编码设置是否锁定为 UTF-8 无 BOM。










