答案是:先用df -h和df -i定位问题,再清缓存、禁用vcs缓存、清理临时目录并升级composer。报no space left on device时,需先运行df -h看磁盘使用率、df -i看inode使用率(尤其/tmp和缓存分区),若inode use%接近100%即为真凶;composer clear-cache不清理vendor和vcs目录,需手动删vcs/并执行composer config --global cache.vcs false;同时检查sys_get_temp_dir()路径下composer_*.zip等临时文件;定期composer self-update可优化缓存复用。

磁盘空间不足报错不是 Composer 在故意占地方,而是它默认缓存 ZIP 包、Git 裸仓库、元数据三类文件,长期不清理会同时吃掉磁盘空间和 inode——尤其在 CI、容器或 Windows 用户目录下,df -h 显示还有空间,df -i 却爆满,这才是真凶。
怎么确认是磁盘满还是 inode 满?
报 No space left on device 且卡在 Downloading 阶段时,别急着删项目目录。先跑两行命令:
-
df -h看各挂载点使用率(重点看/tmp和缓存所在分区) -
df -i看 inode 使用率——如果Use%接近 100%,哪怕磁盘剩 20GB 也照样失败
Composer 缓存里每个包都建独立子目录(比如 ~/.composer/cache/files/monolog/monolog/1.27.0/),全是小文件,正是 inode 杀手。Windows 上 %APPDATA%\Composer\Cache\ 同样适用该判断逻辑。
为什么 composer clear-cache 清完没释放空间?
根本原因不是命令失效,而是你删错了“大户”:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
vendor/目录才是主力,一个中等 Laravel 项目就占 300–800 MB,而composer clear-cache完全不碰它 -
vcs/目录被默认跳过——单个 Git 裸仓库(如laravel/framework的 shallow clone)常达 300–800 MB,且每个都占大量 inodes -
clear-cache主要清理cache/repo/(JSON 元数据)和损坏的cache/files/条目,但不会主动删除“有效但陈旧”的包缓存
执行 du -sh $(composer config --global cache-dir) 查总大小;再单独看 du -sh $(composer config --global cache-dir)/vcs,常占总量 70% 以上。如果输出是 4.0K 或提示 No cache files to delete,说明缓存几乎为空,清也白清。
怎么安全释放空间,而不是盲目清缓存?
composer clear-cache 是安全的全量操作,但多数场景下,手动清理更精准:
- 先查进程:
ps aux | grep composer(Linux/macOS)或tasklist | findstr composer(Windows),杀干净再操作 - 禁用 vcs 缓存(省最多空间且最安全):
composer config --global cache.vcs false,后续所有 Git 包强制走--prefer-dist - 已存在的
vcs/目录可安全手动删:rm -rf ~/.composer/cache/vcs/(Linux/macOS)或rd /s /q "%APPDATA%\Composer\Cache\vcs"(Windows) - 临时目录常被忽略但更致命:PHP 的
sys_get_temp_dir()返回路径(Windows 通常是C:\Users\用户名\AppData\Local\Temp,Linux/macOS 是/tmp或$TMPDIR),里面堆积大量composer_*.zip、php*.phar,必须一并检查
真正省事的方式其实是定期跑 composer self-update——新版 Composer 对缓存压缩和复用更聪明,比反复清缓存更能稳住磁盘增长节奏。










