composer global require 是唯一有效的全局安装命令,它将包安装到全局 vendor 目录(如 ~/.composer/vendor),但必须手动将 vendor/bin 路径加入系统 path 才能调用命令,否则必报 command not found。

composer global require 是唯一能用的全局安装命令
没有 composer global 这个独立命令,单独敲它会报错。真正起作用的是 composer global require vendor/package-name,比如 composer global require laravel/installer。它把包装进 Composer 的全局 vendor 目录(默认是 ~/.composer/vendor 或 %APPDATA%\Composer\vendor),但仅此而已——命令还不能直接调用。
-
--dev参数会被忽略:全局安装不区分require和require-dev,加了也白加 - 别用
sudo composer global require:会导致~/.composer所有权变成 root,后续所有全局操作都会因权限失败;正确做法是chown -R $USER ~/.composer - 安装成功 ≠ 命令可用:你看到
Using version ^4.4 for laravel/installer这类输出,只代表包进了vendor,不代表laravel命令就能敲出来
vendor/bin 必须手动加进 PATH,否则 command not found 是必然结果
Composer 把包里声明的可执行文件(比如 laravel、php-cs-fixer)软链接到全局 vendor/bin/ 目录下,但这个路径默认不在系统 PATH 里。Shell 根本找不到它,这是 90% “明明装了却用不了” 的根源。
- Linux/macOS 路径是
$HOME/.composer/vendor/bin(或$COMPOSER_HOME/vendor/bin,如果改过COMPOSER_HOME) - Windows 路径是
%APPDATA%\Composer\vendor\bin(注意不是%APPDATA%\Composer\bin,后者不存在) - macOS 用户若用 zsh,要改
~/.zshrc;bash 用户改~/.bash_profile;改完必须source ~/.zshrc或重启终端 - 验证是否生效:运行
echo $PATH | grep composer(Linux/macOS)或echo %PATH%(Windows),确认路径已存在;再试laravel --version,有输出才算通
怎么查全局 bin 目录真实路径?别猜,用命令问 Composer
别靠记忆或文档硬背路径,尤其当你改过 COMPOSER_HOME。Composer 自己就知道它把命令放哪儿了。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
composer config --global home得到全局根目录,再拼上/vendor/bin就是完整路径 - 更直接:运行
composer global config bin-dir --absolute,它会直接输出类似/home/alex/.composer/vendor/bin的绝对路径 - 想确认某个工具是否真被链接进来:Linux/macOS 下
ls -l ~/.composer/vendor/bin/ | grep laravel,能看到软链接指向;Windows 下用dir %APPDATA%\Composer\vendor\bin - 如果改错
COMPOSER_HOME,用composer config --global --unset home可恢复默认
composer global update 很危险,别当日常操作用
它会强行拉取所有全局包的最新兼容版本,但不同工具依赖的 symfony/console、php 版本可能互相冲突。报错时往往只显示“Your requirements could not be resolved”,连哪个包在捣鬼都看不到。
- 升级单个包更安全:比如
composer global require laravel/installer:^5.0,明确指定版本范围 - 卸载不是
rm -rf ~/.composer/vendor:那会删掉所有全局工具;正确方式是composer global remove laravel/installer - IDE 或脚本可能硬编码旧路径:如果你改过
COMPOSER_HOME,旧工具(比如phpunit)可能突然找不到,得手动重装或修复配置
最常被跳过的一步,是把 vendor/bin 加进 PATH;最容易被低估的风险,是盲目跑 composer global update。这两件事没做对,其他所有操作都只是徒劳。










