Composer镜像本身不占空间,真正耗磁盘和inodes的是cache/files/(ZIP包)、cache/vcs/(Git裸仓库)及sys_get_temp_dir()临时文件;需分别定位路径、精准清理或重定向。

Composer 镜像本身不占多少空间,真正吃掉磁盘和 inodes 的是它背后缓存的 ZIP 包、Git 裸仓库和临时解压文件——清理“镜像”不如精准清缓存。
cache/files/ 里堆着几百 MB 的 ZIP 包,别等爆满才动手
这个目录存的是所有下载过的 .zip 和 .tar.gz 归档,文件名类似 monolog/monolog/2.13.0/9a8b7c6d.zip。一个 Laravel 组件或 Symfony 包就可能超 50 MB,长期积累轻松突破 2 GB。
-
composer clear-cache会清掉它,但只删校验失败或失效的条目,不会动“合法但陈旧”的包 - 想精准瘦身:先跑
composer config --global cache-dir定位路径,再进files/子目录,按修改时间排序,手动删掉 90 天前的子目录(比如用find ~/.composer/cache/files -type d -mtime +90 -delete) - 别直接
rm -rf files/—— 多个项目共用同一 ZIP 是常态,删错会导致下次composer install重复下载
cache/vcs/ 是 inode 杀手,clear-cache 默认完全不管它
vcs/ 目录存的是 Git 裸仓库(含完整 .git),每个包一个仓库,体积 300–800 MB,文件数动辄上万。它不参与 composer clear-cache 流程,却是 No space left on device 的高频元凶——尤其在 df -i 显示 inode Use% 接近 100% 时。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 安全清法:
rm -rf ~/.composer/cache/vcs/(Linux/macOS)或手动删%APPDATA%\Composer\Cache\vcs\(Windows) - 一劳永逸:运行
composer config --global cache.vcs false,之后所有包强制走--prefer-dist,彻底跳过 Git 克隆 - 注意:禁用后首次
composer update会慢一点(重下 dist 包),但后续更稳,且不再偷偷耗尽 inodes
临时目录(sys_get_temp_dir)才是真·隐形炸弹
Composer 解压 ZIP、生成 autoload、执行脚本时重度依赖 PHP 的 sys_get_temp_dir() 返回路径。Windows 默认是 C:\Users\用户名\AppData\Local\Temp,Linux/macOS 是 /tmp——这里堆积的 composer_*.zip、php*.phar 文件往往比缓存还难察觉。
- 先查真实路径:
php -r "echo sys_get_temp_dir();" - Windows 用户直接进资源管理器搜
composer_;Linux/macOS 运行:find $(php -r "echo sys_get_temp_dir();") -name "composer_*" -delete 2>/dev/null - 长期方案:用环境变量重定向,比如 Linux 上启动时加
TMPDIR="/mnt/data/tmp" php composer install,避免污染系统级/tmp
换 cache-dir 比反复 clear-cache 更治本
默认缓存路径常落在小容量分区(如 Windows 的 C 盘 %APPDATA% 或 Linux 的 /home 分区),清完一周又满。与其天天删,不如一次性迁走。
- 查当前路径:
composer config --global cache-dir - 迁移到大分区:
composer config --global cache-dir "/mnt/data/composer-cache"(Linux/macOS)或composer config --global cache-dir "D:\composer-cache"(Windows) - 务必验证:目标目录存在、可写,且不是 NFS 或权限受限挂载点(否则解压 ZIP 会报
failed to open stream)
最易被忽略的点:cache-dir 只管 Composer 自己的缓存,但 sys_get_temp_dir() 是独立路径,两者都得盯紧——光清 cache/ 却放任 /tmp 堆积,问题照旧。

















