composer update 看不到新版本是因为默认复用15分钟内不过期的本地 packages.json 缓存,即使镜像已更新也不会发起网络请求;需用 composer update --refresh(≥2.5)或手动清理缓存目录强制刷新元数据。

composer update 为什么看不到新版本?
因为 Composer 默认复用本地缓存的 packages.json,15 分钟内不过期,哪怕镜像站已更新,它也读缓存、不发请求。现象是 Packagist 上已显示 monolog/monolog v3.6.0,但执行 composer update monolog/monolog 却提示 “Nothing to install or update”。
这不是镜像没同步,而是你本地根本没去查——缓存拦住了网络请求。
常见错觉:
• composer clear-cache 后仍装不到新版 → 它删了 ZIP 包,但 packages.json 缓存会立刻重建并复用旧数据
• 改了 repo.packagist 配置就以为生效 → 实际可能被项目级 repositories 字段完全屏蔽
怎么确认当前真在用阿里云/腾讯云镜像?
别信配置文件或直觉,用命令直接看实际生效地址:
• 查全局配置:composer config -g repo.packagist —— 输出必须是完整 URL,如 https://mirrors.aliyun.com/composer/(注意末尾斜杠不能少)
• 查真正生效的源:composer config --list | grep repositories.packagist.url —— 如果为空,说明项目级 composer.json 里写了 "repositories",它优先级更高,且会彻底屏蔽全局设置
• 检查拼写陷阱:repos.packagist(复数)才是 Composer 2.2+ 的正确键名;repo.packagist 在新版中静默忽略,不报错也不生效
• 验证连通性:curl -I https://mirrors.aliyun.com/composer/packages.json 必须返回 HTTP/2 200;返回 404 或超时,说明镜像不可用或地址写错
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
强制刷新元数据,不是清整个缓存目录
composer update --refresh 是唯一精准解法(仅 Composer ≥ 2.5 支持),它只丢弃 packages.json 和 provider-*.json,保留已下载的 ZIP 包,快且安全。
执行前务必确认两点:
• composer config -g repo.packagist 输出是你期望的镜像地址
• 当前项目没被 repositories 字段劫持(否则 --refresh 也会去错地方拉)
老版本(≤2.4)不支持该参数,只能手动删对应缓存子目录:rm -rf $(composer config --global cache-dir)/repo/https---mirrors-aliyun-com-composer
临时调试可用 --no-cache -v,终端会打印真实请求 URL,一眼看出是否命中你配的镜像
镜像不同步时怎么安全降级?
极少数情况(如新包发布 1 小时内未出现在镜像),可临时回退到官方源,但不能裸连:
• 仅本次命令切回:composer config --no-plugins repo.packagist https://packagist.org
• 若报 curl error 60(证书问题),临时禁用 HTTPS 校验:composer config -g secure-http false(用完立刻恢复:composer config -g secure-http true)
• 更稳妥方式:composer require vendor/package-name --prefer-source --no-cache,直接从 Git 拉(前提是包支持)
注意:不要长期用 secure-http false,生产环境必须关闭;也不要依赖 --repository 临时指定却不加 -v,看不到真实请求地址,容易误判










