卡点真在元数据下载需用composer update -vvv --profile确认:若停在downloading https://packagist.org/packages.json,说明镜像未生效或url已404;若反复reading /packages.json from cache无进展,多为缓存损坏或dns失败;若卡在resolving dependencies through sat,则是版本约束过宽或存在隐式冲突。

卡在“Updating dependencies”不是网络差,而是没定位到真实卡点;换镜像、清缓存、开并发这三步必须做全,且顺序不能乱。
怎么确认卡点真在元数据下载
运行 composer update -vvv --profile,盯住最后几行输出:
- 如果停在
Downloading https://packagist.org/packages.json或类似 URL,说明镜像根本没生效,或该地址已 404(比如https://packagist.phpcomposer.com自 2025 年底起返回 404) - 如果反复出现
Reading /packages.json from cache但后续无进展,大概率是缓存损坏或 DNS 解析失败 - 如果卡在
Resolving dependencies through SAT,问题不在网络,而在composer.json里版本约束太宽(如"^1.0 || ^2.0")或存在隐式冲突
镜像源切换必须验证是否真正生效
只执行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 不够,三件事缺一不可:
- 执行
composer config -g repo.packagist,输出必须是完整 JSON,且url字段值为"https://mirrors.aliyun.com/composer/"(结尾带/,类型声明不能少) - 立刻执行
composer clear-cache——旧缓存会继续尝试访问packagist.org,哪怕配置已改 - 跑一次
composer install -vvv,日志第一行应显示Downloading https://mirrors.aliyun.com/composer/packages.json,否则还是走老路
注意:repos.packagist(多一个 s)是错的键名,Composer 2.2+ 已弃用 repo.packagist,改用 repositories.packagist.org;但当前主流命令仍兼容旧名,只要输出对就行。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
parallel-downloads 设多少才实际提速
parallel-downloads 是 Composer 2.2+ 原生机制,只对 composer install 下载 ZIP 包有效,update 阶段仍串行解析依赖。设太低等于没开,设太高可能触发文件竞争:
- 默认值
3几乎无并发效果,推荐设为10:composer config -g parallel-downloads 10 - 企业 CI 或低配服务器若报
file_put_contents(): failed to open stream,降到6~8更稳 - 该参数依赖镜像源支持 HTTP/2,阿里云、腾讯云、清华源(HTTPS)都支持;私有源若不支持,设再高也无效
- 务必先
composer --version确认是 2.2+,1.x 用户需先composer self-update
连接中断后重试的关键动作
Composer 内置重试逻辑,但前提是它知道该重试什么。卡住后别直接 Ctrl+C,先看 -vvv 日志末尾的 URL:
- 如果是
packages.json地址,手动curl -I测试该 URL 是否可访问;404 就换源,超时就查 DNS 或代理 - 如果是具体包 ZIP 地址(如
https://mirrors.aliyun.com/composer/dist/vendor/package.zip),说明镜像已生效,但网络抖动;此时删掉vendor/和composer.lock后重试更可靠 - 临时绕过所有配置验证:加
--repository=https://packagist.org强制走官方源,若变快,说明你本地镜像配置或缓存有问题
最常被跳过的动作是清缓存——哪怕换了三次镜像,只要 composer clear-cache 没跑,Composer 就还在用旧索引找包。










