Composer 2.5.0+ 已彻底移除 self-update 命令,必须用官方脚本重装:先校验 SHA-384 哈希,再执行 php composer-setup.php 安装至正确路径(如 /usr/local/bin 或 /opt/homebrew/bin),最后刷新 shell 缓存并重新配置镜像源。

直接重装,别碰 self-update——它已在 Composer 2.5.0 中被彻底删除,现在执行只会报错 Command "self-update" is not defined。升级不是“更新命令”,而是用官方脚本覆盖二进制文件。
怎么确认当前安装方式和真实路径
很多人以为 composer --version 就是真相,其实不是。系统级软链接、包管理器硬绑定、多版本共存都会导致结果失真。
- 先运行
which composer看命令实际指向哪 - 再运行
ls -l $(which composer)检查是不是符号链接 - 如果是链接,用
readlink -f $(which composer)找到真实文件位置 - 若路径在
/usr/bin、/opt/homebrew/bin或/usr/local/bin且属主为 root,说明是系统级安装,self-update必然无效
用官方脚本重装到最新稳定版(推荐)
这是唯一被 Composer 官方支持的升级方式,带 SHA-384 校验和 GPG 验证,绕过所有包管理器陷阱。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 执行完整命令(以全局安装为例):
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6dc97f') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer php -r "unlink('composer-setup.php');" - 如果你没权限写
/usr/local/bin,改用用户级安装:php composer-setup.php --install-dir=$HOME/.local/bin --filename=composer,然后确保$HOME/.local/bin在$PATH前置 - macOS Homebrew 用户请把
--install-dir改成/opt/homebrew/bin/ - 重装完立刻运行
hash -r(bash/zsh)或重启终端,否则 shell 还缓存旧路径
重装后必须检查的三件事
很多人重装完就跑 composer install,结果卡住或报错,问题几乎都出在这三项上。
-
composer --version输出是否 ≥2.7.0?如果还是 2.4.x,说明你装到了错误路径(比如临时目录),或者$PATH没刷新 -
php -v是否 ≥8.0?Composer 2.5+ 已不兼容 PHP 7.4,升级后首次运行会因Attribute语法直接ParseError -
ls -ld ~/.composer权限是否属于当前用户?若属主是root,新 Composer 读不到全局配置(如镜像源、插件设置),需运行chown -R $USER:$USER ~/.composer
最易被忽略的是:重装不会保留你设过的国内镜像源。执行完立刻补上 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,否则默认走官方源,慢且容易超时失败。










