composer 2.2+ 才支持 composer global remove,需先运行 composer --version 确认版本,低于 2.2 须执行 composer self-update 升级;卸载时用 composer global remove vendor/package-name,且需手动清理 ~/.composer/vendor/bin/(或 windows 的 %appdata%\composer\vendor\bin)中残留的二进制文件并刷新 shell 缓存。

composer global remove 命令在 Composer 2.2+ 中才正式支持,低于该版本会报错 Command "global:remove" is not defined。所以第一步得确认你的 Composer 版本。
怎么确认 Composer 版本并升级到支持 remove 的版本
运行 composer --version 查看当前版本。若低于 2.2(比如 2.1.x 或更早),composer global remove 根本不存在,强行使用只会报错。
- 升级方式:执行
composer self-update(确保有写入权限) - 若因权限问题失败,可加
--snapshot或用sudo composer self-update(仅限 Linux/macOS) - Windows 用户若用 Scoop 安装,应改用
scoop update composer
用 composer global remove 删除包的正确姿势
语法是 composer global remove vendor/package-name,注意必须带 vendor 名,不能只写包名(如不能写 laravel/installer 写成 installer)。
- 例如卸载全局 Laravel 安装器:
composer global remove laravel/installer - 卸载 PHP CS Fixer:
composer global remove friendsofphp/php-cs-fixer - 执行后会自动删掉
vendor/下对应目录,并更新composer.json和composer.lock
删完还提示“command not found”?检查 PATH 和 bin 目录
即使 composer global remove 成功,终端仍可能找不到命令,因为 Composer 的 bin 目录(通常是 ~/.composer/vendor/bin 或 ~/composer/vendor/bin)没从 PATH 中移除软链,或 shell 缓存未刷新。
- 运行
which laravel(举例)确认是否残留可执行文件 - 手动检查
~/.composer/vendor/bin/下对应二进制文件是否还存在 - 删掉残留文件后,运行
hash -r(bash/zsh)刷新命令哈希缓存 - Windows 用户需确认
%APPDATA%\Composer\vendor\bin是否已清空
真正容易被忽略的是:全局包的二进制文件不会随 remove 自动从 bin 目录删除,尤其当多个包共用同一命令名或安装时用了 --no-bin-links,就得手动清理 vendor/bin 下的符号链接或可执行文件。










