缓存目录需先用composer config --global cache-dir确认真实路径,未配置时默认为~/.composer/cache(linux/macos)或%appdata%\composer\cache(windows);迁移应通过该命令修改为绝对路径并确保权限,旧缓存需手动同步,vcs/目录须单独清理或禁用cache-vcs。

缓存目录在哪?先确认当前路径再动手
运行 composer config --global cache-dir,它会直接输出当前生效的缓存路径。没配过就是默认值:~/.composer/cache(Linux/macOS)或 %APPDATA%\Composer\cache(Windows)。别凭印象猜,尤其在 CI 或 Docker 里,~ 指的是当前用户家目录,不是项目目录,也不是 /tmp。
怎么安全迁移到大分区?用 config 命令改,别碰文件系统硬搬
迁移不是剪切粘贴文件夹,而是让 Composer “认新家”。执行:
-
composer config --global cache-dir /data/composer-cache(Linux/macOS)或composer config --global cache-dir D:\composer-cache(Windows) - 确保目标路径存在且当前用户有读写权限,否则后续
install会报file_put_contents(...): failed to open stream - 路径必须是绝对路径,
~、$HOME这类 shell 符号 Composer 不解析 - 改完立刻生效,但旧缓存不会自动迁移——要手动
rsync -a ~/.composer/cache/ /data/composer-cache/或删旧目录腾空间
CI/CD 场景下缓存路径必须隔离,否则并发会出错
GitHub Actions、GitLab CI 等共享构建机上,多个 job 共用一个缓存目录会导致:
- 读写冲突:A job 正在写
repo/https---packagist.org/packages.json,B job 同时读,拿到截断 JSON - PHP 版本混用:同一份
dist包被 PHP 8.1 和 8.3 共享,autoload_classmap.php可能失效
正确做法是按环境变量组合隔离:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 在 CI 脚本开头设:
composer config --global cache-dir "$HOME/.composer-cache-$PHP_VERSION-$COMPOSER_VERSION" - Docker 中记得加
VOLUME ["/root/.composer-cache"]或挂载宿主机目录,否则容器退出缓存就丢 - 别把缓存设在
/tmp,某些系统定时清理,导致重复下载拖慢流水线
vcs/ 目录才是磁盘杀手,clear-cache 默认不删它
composer clear-cache 只清 files/、repo/、installers/,但 vcs/(Git 克隆副本)往往占 80% 以上空间,且默认跳过。查真实占用:
- Linux/macOS:
du -sh ~/.composer/cache/vcs - Windows:
dir /s %APPDATA%\Composer\Cache\vcs
清完再补一句:
- Linux/macOS:
rm -rf ~/.composer/cache/vcs - Windows:
rd /s /q "%APPDATA%\Composer\Cache\vcs"
长期更省事:直接禁用 VCS 缓存,composer config --global cache-vcs false,所有包强制走 --prefer-dist 安装。










