composer clear-cache仅支持全量清除,不接受包名过滤参数;如需清理特定包缓存,须手动进入~/.composer/cache/files/等目录,用find定位vendor-name-version-hash.zip文件并删除。

composer clear-cache 不能按包名清理,这是硬限制
官方命令 composer clear-cache 不接受任何过滤参数,--package、--name 或正则匹配都不存在。源码和文档明确只支持全量清除 files/、repo/、vcs/ 三个子目录。所谓“清某个包”,必须手动进缓存目录操作。
精准定位并删除特定包的 .zip 缓存文件
绝大多数空间占用来自 files/ 目录下的归档包,命名格式为 vendor-name-version-hash.zip(如 monolog-monolog-2.13.0-abc123.zip)。操作前务必确认路径和预览结果:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(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(注意:可能被COMPOSER_CACHE_DIR环境变量覆盖) - 进入归档目录:
cd $(composer config --global cache-dir)/files - 用
find定位(以monolog/monolog为例):find . -name "*monolog*monolog*" -name "*.zip" - 删之前先
ls或echo预览,避免误删;确认无误再加-delete - 别碰
repo/packagist.org/目录——它存的是全局元数据快照,删了会导致下次composer update首次拉取极慢
清完还是装不到新版?问题大概率不在缓存
删掉 monolog/monolog 的 zip 后,composer install 仍装旧版,常见原因有:
-
composer.lock文件锁定了版本,与缓存无关 - 镜像源 CDN 缓存未刷新(
clear-cache不触达服务器端) - 私有包改了 tag 却没推新 commit,Composer 复用本地解压结果,根本不会查远程
- 元数据 TTL 未过期(通常 24 小时),即使清了
repo/,首次update仍可能拉到旧快照 - 想强制升版,用
composer update monolog/monolog --no-cache,而非反复清缓存
真正容易被忽略的点:缓存路径可能不唯一
公司级镜像或 CI/CD 环境常把缓存挂到 NFS、自建目录或容器卷,composer config --global cache-dir 返回的只是 Composer 当前配置路径,clear-cache 和手动 find 都只作用于此——它不会自动扫描 /mnt/nfs/composer-cache 或 /var/cache/composer 等其他位置。如果你在 Docker 构建中看到缓存没清干净,先检查是否多个路径同时被写入。










