composer clear-cache 清完仍报“No space left on device”通常因 inode 耗尽而非磁盘空间不足,缓存目录含数万小文件(如 ZIP、JSON、Git 哈希),尤其在 APFS/macOS 或 WSL 下易触发;需用 df -i 验证,清理前应确认缓存路径、大小及权限,并手动删除 vcs/ 目录(rm -rf ~/.composer/cache/vcs/)或禁用 cache-vcs。

composer clear-cache 为什么清完还报 No space left on device
这不是命令没生效,而是你遇到的大概率是 inode 耗尽,不是磁盘块(block)用光。Composer 缓存目录(~/.composer/cache)里有数万个小文件:每个 ZIP、每个 JSON 元数据、每个 Git 提交哈希都占一个 inode。APFS(macOS)、某些 Linux 发行版或 WSL 的默认配置对小文件极不友好。
验证方式很简单:df -i 查看 Use% 列。如果接近 100%,哪怕 df -h 显示还有 20GB 空间,也会报 No space left on device。
别急着删目录——composer clear-cache 本身会释放 inode,但若缓存路径在 inode 紧张的分区(比如 macOS 的系统卷),它刚删完,下一秒 composer install 就可能又打满。
清理前必须确认的三件事
盲目运行 composer clear-cache 可能白忙活,甚至引发权限问题:
- 先查真实路径:
composer config --global cache-dir—— 有些团队改过全局配置,或用了COMPOSER_HOME环境变量,缓存不在默认位置 - 再看实际大小:
du -sh $(composer config --global cache-dir)(Linux/macOS)或 Windows 下直接进%APPDATA%\Composer\Cache右键属性 —— 如果不到 200MB,别指望靠它救 C 盘 - 检查权限:
ls -ld $(composer config --global cache-dir),确保当前用户有读写权;若曾用sudo composer,子目录可能属 root,clear-cache会卡在Permission denied
真正吃空间的其实是 vcs/ 目录
composer clear-cache 默认清 files/、repo/、installers/,但跳过 vcs/ —— 这个目录存的是完整 Git 克隆(含 .git),一个 Laravel 或 Symfony 包就占 300–800 MB,且几乎从不复用。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
安全清理方式:
- 先跑
composer clear-cache(它会清掉其他部分并重置锁) - 立刻补一句:
rm -rf ~/.composer/cache/vcs/(Linux/macOS)或rd /s /q "%APPDATA%\Composer\Cache\vcs"(Windows) - 想一劳永逸?禁用它:
composer config --global cache-vcs false,后续所有 Git 包强制走--prefer-dist
注意:vcs/ 删了完全安全,下次需要时自动重建;但 repo/packagist.org/ 别碰,删了会导致首次 composer update 卡很久。
长期节省空间的关键配置
清一次缓存只解燃眉之急。真正控制膨胀速度,得改配置:
- 关掉 ZIP 包缓存:
composer config --global cache-files-dir false(注意是字符串false,不是布尔值),这样只缓存源码,不存.zip,省空间但首次安装稍慢 - 设缓存上限(Composer 2.5+):
composer config --global cache-max-size "500M",超限自动淘汰旧条目 - 切到大分区:
composer config -g cache-dir /data/composer-cache,避开/home或 C 盘 - 避免临时文件堆积:
composer config --global github-protocols ["https"]防 SSH 卡住,composer config --global process-timeout 300防超时残留锁
最后提醒:别把 vendor/ 当缓存去删——它不属于 Composer 缓存体系,删了项目直接崩;也别信“定期自动清缓存”,Composer 自带 LRU 淘汰,默认上限 300 MiB,多数时候它比人更懂节制。

















