必须同步清理三处:先 composer clear-cache,再删 ~/.composer/cache/repo/https---packagist.org/、vendor/composer/installed.json 和 composer.lock;否则 update 仍复用旧元数据与版本锁定。

composer update 说“nothing to install or update”但明明有新版本?
这基本是 metadata 缓存没清干净。Composer 不是从 Packagist 实时拉 packages.json,而是复用 ~/.composer/cache/repo/https---packagist.org/ 下的 provider-*.json 和 packages.json 快照。哪怕镜像站已同步 v3.2.0,只要这个目录里还存着旧索引,composer update 就会认为“没有 3.2.0”。
必须同步清理三处:
-
composer clear-cache(先清基础缓存,避免干扰) rm -rf $(composer config --global cache-dir)/repo/https---packagist.org/rm -f vendor/composer/installed.json composer.lock
Windows 用户注意:$(composer config --global cache-dir) 在 PowerShell 中需写成 $(composer config --global cache-dir).Trim(),或直接用 $env:APPDATA\Composer\Cache\repo\https---packagist.org\。
删了缓存还是拉不到新版?检查镜像配置是否真生效
很多人配了阿里云镜像,但 composer update -v 日志里仍出现 Downloading https://packagist.org/packages.json——说明配置根本没生效。
验证方式:
- 运行
composer config -g repos.packagist(注意是repos复数,不是repo);输出应为完整 JSON,如{"type":"composer","url":"https://mirrors.aliyun.com/composer/"} - 若项目根目录存在
composer.json且含"repositories"字段(哪怕只是[]),它会**完全屏蔽全局镜像**;此时要查composer config repos.packagist(不加-g) - 旧模板中残留的
"url": "https://packagist.phpcomposer.com"已停用,会导致请求卡在 404,必须手动删掉
composer update 卡在 “Resolving dependencies” 或没反应?
这不是缓存问题,而是依赖解析器正在暴力穷举兼容组合。尤其当 composer.json 里写了 "php": "7.4" 而本地 PHP 是 8.2,或者多个包通过 conflict / replace 静默互斥时,解析可能耗时数分钟甚至超时。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
快速定位方法:
- 加
-vvv:运行composer update -vvv,盯住最后一行输出,看卡在Reading /path/to/cache/...(缓存读取)、Downloading(网络)、还是Resolving dependencies(解析) - 跳过脚本验证:加
--no-scripts排除post-update-cmd类钩子阻塞 - 强制走压缩包:加
--prefer-dist避免卡在 Git 克隆
如果确认是解析卡死,别反复清缓存,改用 composer why-not vendor/package:version 定位真实冲突链。
Failed to extract 或 Corrupted zip file 错误怎么处理?
这不是元数据问题,是 ~/.composer/cache/files/ 下某个 ZIP 包损坏了。Composer 下载中断或磁盘写异常后,只校验哈希、不验证 ZIP 结构,导致后续解压失败。
精准清理步骤:
- 运行
composer install -v,找到报错前最后一行类似Extracting vendor/symfony/console的输出,提取包名(如symfony/console) - 进缓存 files 目录,模糊搜索并仅删除对应 ZIP:
ls -l *symfony*console*.zip(Linux/macOS)或 PowerShell 中Get-ChildItem "$env:APPDATA\Composer\Cache\Files" -Recurse -Filter "*console*.zip" - 不要碰
repo/和vcs/目录——它们不参与解压 - 删 ZIP 后若仍报错,说明
composer.lock中硬编码的dist.sha256与新下载内容不匹配,必须同步删composer.lock和vendor/
最易被忽略的是 composer.lock:它不是缓存,却是 Composer 认为“无需更新”的唯一依据。删错地方不如漏删它。










