镜像源同步缓存位于 cache/repo/ 目录,composer clear-cache 默认不清理它,导致换镜像后仍用旧 packages.json 请求而报 404 或装错版本;需手动删除对应转义 url 的子目录或使用 composer update --refresh(≥2.5)。

镜像源同步缓存不是独立存在的一块数据,它就藏在 cache/repo/ 目录里——不手动删它,换镜像后仍会按旧索引拉包,导致 404 或“corrupted archive”。
为什么 composer clear-cache 不够用
这个命令会清 cache/files/ 和 cache/vcs/,但默认跳过 cache/repo/ 下的元数据快照(比如 packages.json 和 provider-*.json)。这些文件有 15 分钟本地缓存期,即使你已切到阿里云镜像,Composer 还是拿着 packagist.org 时代的快照去请求新 URL,结果就是报错或装错版本。
-
composer clear-cache后仍卡在Loading composer repositories?大概率是repo/里残留着旧源快照 - 执行
composer config -g repo.packagist输出正常 ≠ 镜像真生效;得看日志里实际请求的是哪个域名 - 新版 Composer(≥2.5)可用
composer update --refresh精准清理 repo 缓存,老版本必须手动删目录
手动清理 cache/repo/ 的安全路径
先确认当前生效镜像地址,再进对应子目录删干净,避免误删其他源的缓存:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 查真实缓存根路径:
composer config --global cache-dir - 进 repo 子目录:
ls $(composer config --global cache-dir)/repo/,找形如https---mirrors-aliyun-com-composer的文件夹(URL 中的.和/全被转义成-) - 只删这一层:
rm -rf $(composer config --global cache-dir)/repo/https---mirrors-aliyun-com-composer - Windows 用户用:在资源管理器地址栏粘贴
%APPDATA%\Composer\Cache\repo\https---mirrors-aliyun-com-composer,直接删除整个文件夹
验证是否真从镜像拉取元数据
别信配置输出,要看网络行为:
- 加
-vvv参数跑一次安装:composer install -vvv 2>&1 | grep "GET https",确认日志里出现的是你配的镜像域名,不是packagist.org - 直接 curl 镜像元数据接口:
curl -I https://mirrors.aliyun.com/composer/packages.json,返回HTTP/2 200且Last-Modified是今天时间才算同步及时 - 如果仍看到
https://packagist.org/p2/xxx.json请求,说明repo.packagist配置格式错误(漏composertype、URL 少末尾/、键名写成repos.packagist)
真正难清理的不是“镜像”,而是 repo/ 里那些名字诡异、带转义字符的子目录——它们不会自动更新,也不会被 clear-cache 触及,却决定你能不能看到新版本。每次换源或升级 Composer 后,这一步都得手动补上。










