composer update --refresh -v 日志中必须出现 downloading https://...packages.json 才说明元数据被强制重拉;若仅显示 reading .../packages.json,则缓存未清干净或镜像源配置失效,且该命令要求 composer ≥ 2.5。

composer update --refresh -v 日志里有没有 Downloading packages.json
这是最直接的判断方式。加 --refresh 后必须看到类似 Downloading https://mirrors.aliyun.com/composer/packages.json 的日志,才说明元数据真被重拉了;如果只显示 Reading /path/to/cache/packages.json,说明缓存没清干净或镜像源配置失效。
注意:--refresh 要求 Composer ≥ 2.5,运行 composer --version 确认版本;低于该版本会报错 Unrecognized option: --refresh。
-
--refresh只刷新元数据(packages.json、provider-*.json),不重下 ZIP 包,所以快且安全 - 它绕过所有本地启发式推导,强制走网络请求——这点比
clear-cache+update更可靠 - 若日志中 URL 是
https://packagist.org/而非你配的镜像地址,说明镜像源没生效(常见于 URL 缺末尾/)
composer diagnose 显示的 Repo URL 是否匹配预期镜像
composer diagnose 输出里的 Repo packagist.org: 行,反映的是 Composer 当前实际使用的源地址,比 composer config -g repo.packagist 更真实。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Windows 用户改完配置后必须重启终端,否则
diagnose仍读旧环境 - Linux/macOS 下禁用
sudo执行config -g,否则写入的是 root 配置,diagnose查不到 - URL 必须带末尾
/,例如https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(静默 fallback 到官方源)
删掉 vendor/composer/installed.json 和 composer.lock 后再跑 update --dry-run
这两文件是“本地状态快照”,不删它们,update 就会基于旧约束做增量计算,根本不会去查远程新版本。
-
vendor/composer/installed.json记录当前已装包的实际版本,影响composer show、depends等命令输出 -
composer.lock锁死每个包的 exact version 和dist.sha256,只要它存在,install就绝不会升版 - 删完后必须用
composer update --dry-run -v验证:看到Resolving dependencies through SAT+Downloading,才算真正触发远程解析
verify-checksums --strict 报 mismatch 说明 vendor 文件已被篡改
执行 COMPOSER_EXPERIMENTAL=1 composer verify-checksums --strict 报错,不代表缓存无效,而是说明磁盘上 vendor/ 里的文件和 composer.lock 记录的哈希对不上——这往往发生在缓存曾被污染、镜像源替换了 dist 包但没同步哈希、或手动改过 autoload.php 等场景。
- 它只告诉你哪个包不匹配,不指出具体哪个文件;要定位得进
vendor/{vendor}/{package}目录手动算 SHA256 -
autoload.php这类引导文件完全游离在校验体系外,被注入恶意代码时 Composer 无法感知 - 这个命令不是缓存验证工具,而是完整性兜底手段;它能暴露问题,但不能解释“为什么 update 没拉到新版”
verify-checksums --strict 是唯一能戳破它的命令,可惜很多人连它存在都不知道。










