答案是临时文件存于sys_get_temp_dir()返回路径(如/tmp或%TEMP%),而非cache/目录;需用find或del命令清理composer_*文件,且cache/vcs/须手动删除或禁用。

composer install/update 时的临时文件不存于 cache/ 目录
很多人以为 composer clear-cache 能清掉构建过程中的“临时文件”,其实它只清理 ~/.composer/cache/ 下的 files/、repo/、vcs/,而真正执行 install 或 update 时解压 ZIP、生成 autoload、跑脚本用的临时文件,全在 sys_get_temp_dir() 返回的路径里——Linux/macOS 默认是 /tmp,Windows 是 %TEMP%。
这些文件名通常带 composer_ 前缀(如 composer_abc123.zip、composer_def456.php),且不会被任何 Composer 命令自动回收。尤其当进程异常退出(Ctrl+C、OOM、CI 超时),残留文件会越积越多,最终触发 No space left on device(实际是 inode 耗尽)。
-
sys_get_temp_dir()查路径:php -r "echo sys_get_temp_dir();" - 清理命令(Linux/macOS):
find $(php -r "echo sys_get_temp_dir();") -name "composer_*" -delete 2>/dev/null - Windows 可用:
for /f %i in ('php -r "echo sys_get_temp_dir();"') do @del /q "%i\composer_*.*"
cache/vcs/ 目录不是缓存,是隐形磁盘杀手
cache/vcs/ 存的是 Git 裸仓库(.git 目录的精简版),每个包一个子目录,单个就占 300–800 MB,含上万小文件。它不参与 composer clear-cache,也不受 --no-dev 影响,是 df -i 显示 inode Use% ≥ 95% 的头号原因。
禁用比清理更治本:一旦设了 composer config --global cache.vcs false,后续 install 全走 --prefer-dist,不再拉裸仓库。但已存在的必须手动删:
- Linux/macOS:
rm -rf ~/.composer/cache/vcs/* - Windows:
rd /s /q "%APPDATA%\Composer\Cache\vcs" - 删前确认没
composer update正在运行,否则可能损坏锁文件
镜像同步期间的元数据缓存不会自动刷新
Composer 默认复用本地 packages.json 缓存 15 分钟,哪怕阿里云镜像站已更新了新版本,composer update 仍可能返回 Nothing to install or update。这不是网络问题,而是本地元数据没过期,根本没发请求。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
强制刷新有三类操作,适用场景不同:
- ≥ 2.5 版本:
composer update --refresh -v(推荐,只重拉元数据,保留 ZIP 包) - ≤ 2.4 版本:
rm -rf $(composer config --global cache-dir)/repo/https---mirrors-aliyun-com-composer - 调试单包:
composer require monolog/monolog --no-cache -v(跳过所有缓存,直接请求镜像)
注意:如果项目级 composer.json 含 "repositories" 字段,它会完全屏蔽全局镜像配置,此时以上命令都无效——得先删或修正该字段。
清理动作必须与镜像配置变更严格同步
换镜像源后不清理缓存,等于白配。旧 repo/ 里的 packages.json 快照仍指向 packagist.org,导致 composer install 拿着错的索引去请求镜像 URL,结果是 404 或 corrupted archive。
正确顺序只有这一种:
- 先执行
composer clear-cache(清空files/、repo/、vcs/三处) - 再配镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(注意中间composer和末尾/) - 最后验证:
composer diagnose -v看末尾是否显示访问https://mirrors.aliyun.com/composer/
漏掉任意一步,或者把 clear-cache 放在配镜像之后,都会让镜像配置形同虚设。最麻烦的是 repo/ 目录残留旧快照——它不会报错,只会默默拖慢安装、偶尔失败,极难定位。

















