composer config --global cache-dir是唯一可靠命令,输出即composer实际使用的绝对缓存路径,如/home/alex/.composer/cache;若为空或报错,需先检查composer config -g home及环境变量,再验证路径归属与权限。

composer config --global cache-dir 是唯一可靠命令
别猜默认路径,也别翻文档里写的“通常是 ~/.composer/cache”——Composer 实际用的缓存路径可能被 COMPOSER_CACHE_DIR 环境变量、CI 配置或公司镜像覆盖。运行 composer config --global cache-dir 才是唯一能拿到当前真实路径的方式。输出结果就是 Composer 正在读写的绝对路径,比如 /data/composer-cache 或 /home/alex/.composer/cache。
如果命令报错或输出为空,说明全局配置未初始化,先跑 composer config -g home 看 COMPOSER_HOME 是否指向合理位置;Windows 用户在 PowerShell 里注意 %APPDATA% 不自动展开,建议切 CMD 或直接查 $env:COMPOSER_HOME。
常见错误现象:Permission denied 时先盯死报错里的完整路径
遇到类似 Writing cache file ~/.composer/cache/repo/https---packagist.org/packages.json: failed to open stream: Permission denied 这种错误,重点不是“没权限”,而是它明确告诉你 Composer 正试图写入哪个具体路径。把这个路径复制出来,直接 ls -ld /path/it/shows 查归属:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 如果第一列显示
root root(如drwxr-xr-x 12 root root),那就是所有权错配,不是 chmod 问题 - 如果显示你自己的用户名但还是报错,检查父目录是否可执行(
x权限)——Linux/macOS 下目录缺x就无法进入子目录 - Windows 上注意路径中是否有中文或空格,部分旧版 Composer 会解析失败
迁移或自定义缓存路径必须用绝对路径
想换地方存缓存?执行 composer config --global cache-dir /new/absolute/path 即可。注意:
- 路径必须存在,且当前用户有读写权限;
mkdir -p /new/absolute/path && chown $USER:$USER /new/absolute/path - 不能用
~,Composer 不解析 shell 符号,~/cache会被当字面量处理,导致后续所有操作失败 - 改完不自动迁移旧缓存,
files/和repo/都得手动搬或删,否则磁盘空间不会释放 - CI/CD 流水线里尤其要小心:sudo composer config -g 写的是 root 的配置,但 runner 实际以
gitlab-runner或www用户运行,必须配对应用户的配置
确认路径生效后,再查占用和清理才不会删错地方
很多人执行 composer clear-cache 后发现磁盘没变化,根本原因是删了默认路径,但 Composer 实际用的是另一个。所以务必按顺序来:
- 先跑
composer config --global cache-dir拿到真实路径 - Linux/macOS 用
du -sh $(composer config --global cache-dir)查大小;Windows 把路径粘贴进资源管理器地址栏 → 右键“属性” - 不到 200 MB 基本不用管;超 1.5 GB 且半年没碰老项目,才值得动手
-
vcs/目录默认被clear-cache跳过,但单个 Git 裸仓库就占 300–800 MB,得手动删:rm -rf $(composer config --global cache-dir)/vcs/*
最易忽略的一点:临时目录 sys_get_temp_dir() 下堆积的 composer_*.zip、php*.phar 文件,clear-cache 完全不碰——那里才是真正的磁盘杀手。










