Ubuntu 官方源的 Composer 包老旧(如 v2.2.x)、不进 PATH、无 self-update 功能,无法满足现代框架要求;必须手动下载官方 composer.phar 并部署到 /usr/local/bin。

Ubuntu 上不能用 apt install composer 装出能直接用的 Composer——系统源里的包老旧(常是 2.0 甚至 1.x)、没 composer 命令别名、不进全局 $PATH,装了也白装。必须手动下载官方 composer.phar,设权限,放对位置。
为什么不能 apt install composer
Ubuntu 官方仓库中 composer 包由社区维护,非官方发布,更新滞后(截至 2026 年 3 月,apt show composer 显示多数 LTS 版本仍为 v2.2.x,而官方已发布 v2.7+),且默认安装路径不在 /usr/local/bin,也不自动注册 composer 命令。更关键的是:它不带 self-update 功能,后续无法升级。
- 运行
apt install composer后执行composer --version报错或提示“command not found”很常见 - 即使命令存在,
composer self-update会失败,报Permission denied或Cannot update phar file - 某些依赖(如 Laravel 11+、Symfony 7+)要求 Composer v2.5+ 的 autoload 优化或插件机制,旧版直接拒绝安装
正确安装步骤(含校验与 PATH 确认)
核心就三步:装依赖 → 下载并校验安装脚本 → 全局部署到 /usr/local/bin/composer。缺一不可,尤其校验不能跳过。
- 先确保基础环境:
sudo apt update && sudo apt install -y curl php-cli php-mbstring php-xml php-zip git unzip(php-xml和php-zip是 2025 年后新版本 Composer 强制依赖,漏掉会导致composer install失败 - 下载并校验安装器:
cd ~ && curl -sS https://getcomposer.org/installer -o composer-setup.php,然后用官方签名验证:HASH=$(curl -sS https://composer.github.io/installer.sig) && php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); }" - 校验通过后安装:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer - 验证是否真进
PATH:which composer应输出/usr/local/bin/composer;若无输出,检查echo $PATH是否含/usr/local/bin(Ubuntu 默认包含,但某些最小化安装或自定义 shell 可能不含)
常见错误现象与对应解法
不是“装不上”,而是“以为装上了,其实没生效”。以下错误几乎都源于路径、权限或校验缺失。
-
bash: composer: command not found:90% 是/usr/local/bin不在$PATH,临时修复:export PATH="/usr/local/bin:$PATH";永久修复:把这行加到~/.bashrc或/etc/environment -
Could not open input file: composer-setup.php:说明当前不在~目录,或文件被删了;重下前先rm -f composer-setup.php -
Installer corrupt:网络中断导致下载不全,或签名 URL 被墙(国内用户建议配好curl代理或改用wget+ 手动核对哈希) -
sudo: composer: command not found(但普通用户能用):说明sudo使用的是 root 的独立$PATH,需运行sudo env "PATH=$PATH" composer --version或将/usr/local/bin加入 root 的secure_path(不推荐,有安全风险)
配置 apt 源?没必要,也别碰
不存在“Composer 的 apt 源”这种东西。Composer 本身不是 Debian/Ubuntu 官方维护的软件包,所有所谓“第三方 apt 源”(如 ondrej/php 的 PPA)只提供 PHP 运行时,不提供 Composer。试图添加这类源并 apt install composer,只会回到开头说的老版本陷阱里。
真正该关心的是 PHP 源——比如用 ppa:ondrej/php 装新版 PHP,再按上面步骤装 Composer。其他任何“composer apt 源”都是误导,容易让你多走一小时弯路。










