composer update卡在“resolving dependencies”是本地sat求解器重算依赖图所致,非网络问题;根本原因包括宽松版本约束、dev稳定性配置、废弃插件fxp/composer-asset-plugin残留、镜像配置错误及元数据缓存未刷新。

composer update 卡住不是网络慢,而是本地在重算依赖图。它根本没开始下载,只在 CPU 上暴力穷举兼容组合。
卡在 “Resolving dependencies” 是纯本地计算
这个阶段不发任何网络请求,也不读缓存 ZIP 包,只调用 SAT 求解器验证所有约束是否能同时满足。哪怕你只改了 "monolog/monolog": "^2.0" 一行,它也会丢掉 composer.lock 里已验证的全部关系,从头尝试每个候选版本。
- 宽松 PHP 版本约束(如
"php": ">=7.4")会让求解器检查几百个包对 PHP 7.4–8.3 的全部兼容性声明 -
"minimum-stability": "dev"会把所有-dev分支、dev-master快照都纳入候选,数量暴增 - 多版本 OR 表达式(如
"^2.0 || ^3.0")让求解空间翻倍,耗时呈指数增长 - Xdebug 开着时,PHP 解析器本身变慢 5–10 倍,SAT 求解自然更久
镜像配置无效,实际还在连 packagist.org
很多人执行了 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,但 composer update 仍卡在 “Downloading” 或反复 DNS 查询——因为配置根本没生效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Composer 2+ 要求键名是
repo.packagist(单数),repos.packagist(复数)会被静默忽略 - URL 必须以
/结尾:https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(拼出 404 路径) - 项目级
repositories配置会覆盖全局设置,composer config --list | grep repositories可确认真实生效源 - 设完不
composer clear-cache,旧元数据缓存仍指向官方源,校验失败后才 fallback,白白耗时
fxp/composer-asset-plugin 这个废弃插件还在拖后腿
Yii2 老项目里常残留 fxp/composer-asset-plugin,它会让 composer update 在 “Installing dependencies” 阶段卡死,不是因为 Composer 慢,而是它强行拉 Bower 包,而国内访问 bower.io 基本超时。
- 卸载命令必须是:
composer global remove fxp/composer-asset-plugin - 删掉
composer.json中所有"replace": {"bower-asset/*": "*"}声明,否则前端资源被跳过 - 换镜像、加 timeout、清缓存全无效——进程层已被它锁死,根本到不了网络层
缓存损坏或元数据滞后,导致“明明有新版本却装不上”
现象是 composer update vendor/package-name 显示 “Nothing to install or update”,但镜像站和 Packagist 页面都已显示新版本。这不是网络问题,是本地缓存的 packages.json 元数据没刷新。
-
composer clear-cache不清元数据缓存,只清 ZIP 和 provider 缓存 - Composer 默认复用 15 分钟内未过期的
packages.json,哪怕镜像站已同步,本地仍用旧列表算 - ≥ 2.5 版本用
composer update --refresh强制重拉元数据;≤ 2.4 则需手动删~/.composer/cache/repo/https---mirrors-aliyun-com-composer/目录 - 验证是否真滞后:
curl -I https://mirrors.aliyun.com/composer/packages.json看Last-Modified时间










