composer_home环境变量是唯一生效方式,设则使用、不设则回退默认路径;linux/macos需写入~/.zshrc等并source或新开终端,windows需用setx或[environment]::setenvironmentvariable设置并重启终端,且必须手动迁移auth.json、config.json及重装全局包,否则静默失败。

COMPOSER_HOME 环境变量是唯一生效方式
Composer 不支持“多用户共享一个配置目录”或“按用户名自动切换 home”,它只认 COMPOSER_HOME 这个环境变量的值——设了就用,没设就 fallback 到默认路径。所谓“不同用户”配置,本质是让每个用户在自己的 shell 初始化文件里设置不同的 COMPOSER_HOME 值。
Linux/macOS 每个用户单独配 ~/.zshrc 或 ~/.bashrc
每个用户的 shell 配置独立,改自己家目录下的文件即可,互不影响:
- 打开终端,编辑当前用户配置:
nano ~/.zshrc(macOS Sonoma 默认用 Zsh) - 添加一行(必须是绝对路径,不能含
~或$HOME):export COMPOSER_HOME="/Users/yourname/.my-composer" - 保存后运行:
source ~/.zshrc - 验证:
composer config --global home应输出你设的路径
注意:别用 ~/my-composer,Composer 会静默退回到 ~/.composer;也别漏掉 mkdir -p $COMPOSER_HOME,否则 auth.json 写入失败时不会报错,只会认证失败。
Windows 多用户需各自设置用户级环境变量
Windows 下每个用户有独立的「用户变量」,设置后仅对该用户生效:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- CMD 中执行:
setx COMPOSER_HOME "C:\Users\Alice\AppData\Roaming\Composer-Alice" - PowerShell 中执行:
[Environment]::SetEnvironmentVariable("COMPOSER_HOME", "C:\Users\Bob\AppData\Roaming\Composer-Bob", "User") - 设置后必须重启所有终端(包括 VS Code 终端、Git Bash),否则子进程读不到新变量
- 验证方式:
echo %COMPOSER_HOME%(CMD)或$env:COMPOSER_HOME(PowerShell)
关键点:不要用系统级变量,否则所有用户共用同一路径;也不要依赖相对路径或中文路径,Windows 下解析不可靠,且 Composer 会直接忽略。
改完 COMPOSER_HOME 后必须手动迁移旧数据
Composer 从不自动复制或同步配置,auth.json、config.json、全局插件和缓存全得你自己搬:
- 先建目标目录:
mkdir -p $COMPOSER_HOME(Linux/macOS)或mkdir C:\path\to\new\composer(Windows) - 把原
~/.composer/auth.json拷过去,并设权限:chmod 600 $COMPOSER_HOME/auth.json - 全局包不会自动重装,要手动跑一次:
composer global install - PATH 必须包含
$COMPOSER_HOME/vendor/bin,否则laravel、phpunit这类命令找不到
最容易被忽略的是权限和 PATH —— 尤其 auth.json 权限不对时,Composer 会静默跳过认证,导致私有包安装失败,但错误信息里完全不提这个原因。










