Composer无增量更新机制,客户端只能通过composer update --refresh(≥2.5)强制重拉packages.json和provider-*.json元数据,保留ZIP包缓存;老版本需手动删除对应repo子目录。

Composer 没有增量更新镜像源的机制,所谓“同步”是服务端行为,客户端只能强制刷新本地元数据缓存。
composer update --refresh 是唯一可控的“伪增量”操作
它不触发镜像站同步,只丢弃本地 packages.json 和 provider-*.json,从当前生效镜像源重拉最新索引,保留已下载的 ZIP 包。适用于 Composer ≥ 2.5。
- 执行前必须确认镜像已真正生效:
composer config -g repo.packagist输出应为{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - 项目级
repositories字段会覆盖全局配置,此时要用composer config repo.packagist(不带-g)验证 - 加
--no-cache -v可在终端日志中看到真实请求 URL,确认是否命中你配的镜像地址 - 老版本(≤ 2.4)不支持该参数,只能手动删缓存子目录,路径由镜像 URL 转义生成,例如
https---mirrors-tencent-com-composer
为什么 clear-cache 不能解决“拉不到新包”
composer clear-cache 只清 ~/.composer/cache/files/ 和 archives/,但关键元数据(repo/ 下的 packages.json、provider-*.json)仍被复用。只要这些文件存在且未过期(默认 15 分钟),Composer 就不会发起远程请求。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 验证方式:
ls -l $(composer config --global cache-dir)/repo/https---mirrors-aliyun-com-composer/,看packages.json修改时间是否陈旧 - 误删整个
cache/会连 ZIP 包一起清掉,下次安装变慢 - 真正要删的是
repo/下对应镜像的子目录,不是files/或vcs/
镜像不同步时的应急判断与切换
卡在 404 不是网络问题,而是镜像还没生成对应分片的 provider-*.json。比如想装 laravel/framework:10.0.0,就手动访问 https://mirrors.aliyun.com/composer/p2/laravel/framework/10.0.0.json 看是否返回 404。
- 阿里云通常延迟 5–10 分钟,小众包或凌晨可能滞后 1–2 小时
- 腾讯云不保留已删包,
Package not found可能是原包被作者下架,而非镜像问题 - 华为云保留历史完整,但 metadata 请求略慢;清华源偶尔因上游故障不可用,可临时切到
https://packagist.phpcomposer.com(已停更,仅应急) - 换源比等更可靠:不同镜像轮询节奏不同,同一时刻查到的版本可能差几个小时
真正容易被忽略的是:镜像配置格式错误会导致静默回退官方源——repo.packagist 键名必须是单数、小写、无 s;type 必须显式为 "composer";url 必须 HTTPS 且末尾带 /。漏一即失效,清缓存也白搭。

















