最稳妥解法是改cache-dir,需先用composer config --global cache-dir查路径,再用du -sh或右键属性确认大小,停掉所有composer进程后清缓存,最后用config --global设新路径并验证权限与写入。

直接改 cache-dir 是最稳妥的解法,前提是确认当前缓存路径所在分区确实空间紧张(比如 C 盘只剩几 GB,而 D 盘空着),而不是 inode 耗尽或进程锁死。
怎么查当前缓存路径和实际占用?
别猜,先确认 Composer 正在往哪写、写了多少:
- 运行
composer config --global cache-dir看输出路径(Linux/macOS 默认是~/.composer/cache,Windows 是%APPDATA%\Composer\Cache) - 用
du -sh $(composer config --global cache-dir)(Linux/macOS)或资源管理器打开该路径看大小 - 重点检查
cache/files/和cache/repo/两个子目录——它们占 90% 以上空间
改缓存路径前必须停掉所有 composer 进程
直接改配置再跑命令,容易遇到 file_put_contents(): No space left on device —— 不是因为磁盘真满,而是旧缓存目录被某个后台进程(如 IDE 内嵌的 Composer 扫描、未退出的 php /path/to/composer.phar)锁着。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Linux/macOS:先执行
ps aux | grep composer,再kill -9 $(pgrep -f "composer") - Windows:运行
tasklist | findstr composer,手动结束对应 PID - 确认无残留后,再执行
composer clear-cache,清完再改路径
用 config --global 设置新缓存路径
改完不生效?大概率是权限或路径不存在。确保目标目录已创建且可写:
- Linux/macOS 示例(换到大容量挂载点):
mkdir -p /data/composer-cache && composer config --global cache-dir "/data/composer-cache" - Windows 示例(换到 D 盘):
mkdir D:\composer-cache && composer config --global cache-dir "D:\composer-cache" - 改完立刻验证:
composer config --global cache-dir输出应为新路径 - 注意:不要用带空格或中文的路径,
cache-dir不支持 shell 变量展开(如$HOME)
为什么改了路径还报空间不足?
常见漏点有三个:
-
sys_get_temp_dir()返回的系统临时目录(/tmp、C:\Users\XXX\AppData\Local\Temp)也被 Composer 高频使用,解压 ZIP、生成 autoload 时会堆积大量composer_*.zip和php*.phar文件,这个目录常被忽略 - 某些 CI 环境或容器里,
COMPOSER_HOME被硬编码到小容量卷,此时仅改cache-dir不够,得一并重定向:export COMPOSER_HOME="/data/composer-home" - 改完没清旧缓存,新路径虽生效,但旧
~/.composer/cache仍占着空间,且可能因 inode 耗尽导致新路径也写失败(df -i必查)










