禁用xdebug、精准清理http/缓存、改用--prefer-dist可解决90%的Composer卡在Loading repositories问题;因clear-cache默认不清理http子目录ETag/Last-Modified缓存且xdebug会拖慢大文件解析。

卡在 Loading composer repositories... 不是网络慢,而是 Composer 正在反复校验缓存或阻塞在 HTTP 响应上——禁用 xdebug、精准清理 http/ 缓存、改用 --prefer-dist,这三步做完,90% 的“卡更新”就解了。
为什么 composer clear-cache 经常没用
它默认清的是整个缓存目录,但真正卡住的往往只是 http/ 子目录里那些带 ETag 或 Last-Modified 的 JSON 响应缓存。这些文件校验失败时,Composer 会无限重试而不报错,看起来就像“卡住”。更麻烦的是:
-
clear-cache不会禁用 xdebug,而 xdebug 在解析 10MB+ 的packages.json时会让 CPU 占用飙升,进度条直接冻结 - 如果之前用
sudo写过缓存,普通用户执行clear-cache可能因权限不足删不干净,输出Cache directory does not exist - 私有源或镜像未返回
Cache-Control: no-cache,--no-cache参数根本穿透不到服务端,本地清缓存也无效
只删 http/ 目录才是最快解法
别一上来就跑 composer clear-cache。先定位并手动清理最可能出问题的部分:
- 查路径:
composer config --global cache-dir,输出类似/home/user/.composer/cache - 进子目录:
cd $(composer config --global cache-dir)/http - 删掉所有 JSON 和 lock 文件:
rm -f *.json *.lock - 再试一次:
php -d xdebug.mode=off $(which composer) install --no-interaction --prefer-dist
这比全量清缓存快得多,且避开 vcs/ 或 repo/ 重建带来的首次延迟。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
CI/CD 环境下必须加 --no-interaction
GitHub Actions、GitLab CI 这类环境没有 TTY,composer clear-cache 默认会卡住等待确认。正确写法是:
composer clear-cache --no-interaction- 搭配
rm -rf vendor(Linux/macOS)或rmdir /s vendor(Windows) - 最后跑:
composer install --no-interaction --prefer-dist --no-cache
注意:--no-cache 是跳过本次读写缓存,不是清缓存;--prefer-dist 跳过 git clone,避免触发 vcs 缓存逻辑。
清完还是装不到新版?真凶大概率是 composer.lock
缓存再干净,只要 composer.lock 还在,composer install 就只会按锁文件还原旧依赖树。这不是命令失效,是设计如此。要拉新版本:
- 删掉
composer.lock,再跑composer install(从头生成新依赖树) - 或者用
composer update vendor/package-name --with-all-dependencies强制重算整条依赖链 - 别只信
composer show输出的 “latest”,它显示的是远程最新版,不代表你当前约束允许升到那里
真正容易被忽略的是:镜像源 CDN 有 TTL(通常 24 小时),你本地清得再干净,packages.json 快照可能还是旧的——这时等或换源比反复清缓存更有效。

















