cache-dir 必须设绝对路径,不能用 ~ 或 $home;composer 不解析 shell 展开,需手动创建目录并确保权限;验证以 composer diag 为准,环境变量 composer_cache_dir 优先级最高。

cache-dir 必须设绝对路径,不能用 ~ 或 $HOME
Composer 完全不解析 shell 展开符号,composer config --global cache-dir ~/composer-cache 或 composer config --global cache-dir $HOME/composer-cache 都会静默失效,最终 fallback 到默认路径(Windows 是 %LOCALAPPDATA%\Composer\Cache,Linux/macOS 是 ~/.cache/composer)。唯一有效写法是完整绝对路径:composer config --global cache-dir D:\composer-cache(Windows)或 composer config --global cache-dir /d/composer-cache(WSL/Linux,需确认 /d 已挂载)。
路径必须手动创建且当前用户有读写权限
Composer 不会自动建目录,也不会报错提示——它只会悄悄退回到默认缓存位置,导致你完全感知不到配置已生效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Windows:运行
mkdir D:\composer-cache(CMD/PowerShell 均可) - Linux/macOS/WSL:运行
mkdir -p /d/composer-cache && chmod 755 /d/composer-cache - CI/Docker 中若以
root运行但实际构建用户是gitlab-runner或www-data,必须确保该用户对目录有所有权:sudo chown -R gitlab-runner:gitlab-runner /d/composer-cache
验证是否真生效,别信 composer config 的输出
composer config --global cache-dir 只显示配置值,不代表运行时实际路径。真正要看的是 composer diag 输出中的 Cache directory: 行。如果这里还是默认路径,说明要么目录没创建、没权限,要么被环境变量覆盖了。
- 先检查环境变量:
echo $COMPOSER_CACHE_DIR(Bash)或$env:COMPOSER_CACHE_DIR(PowerShell)——它优先级最高,会直接覆盖cache-dir配置 - 再确认缓存子目录是否生成:
ls -la $(composer config --global cache-dir)/files,首次composer install后应出现哈希命名的 zip 包 - 若
composer config --global cache-files-dir输出为空,补上:composer config --global cache-files-dir "$(composer config --global cache-dir)/files"
临时换路径?用 COMPOSER_CACHE_DIR 环境变量最可靠
CI 流水线或单次调试时,不想改全局配置,就直接设环境变量。它进程级生效、无需重启终端、优先级最高。
- Bash:
COMPOSER_CACHE_DIR="/d/ci-cache" composer install - PowerShell:
$env:COMPOSER_CACHE_DIR="D:\ci-cache"; composer install - 注意:路径必须绝对;旧缓存不会迁移;执行完即失效;Docker 中要用
ENV COMPOSER_CACHE_DIR=...,不能在RUN里export
~/.cache/composer 下积攒了几个 GB,它们仍占着磁盘,却再也用不上了。










