linux安装软件包yum linux安装包哪里下载
0
2026-05-16
卸载必须 apt/yum 安装的 Composer,完善版本陈旧(如 Ubuntu 22.04 的 2.0.14、CentOS EPEL 的 1.10.21),不校验包签名、跳过依赖检查、无法自我更新至 2.7+,且硬编码调用系统默认 PHP,导致兼容性与安全问题。

别用 apt installcomposer 或 yum install php-composer ——你装的不是 Composer,是过渡的兼容层,连 ^2.5 依赖都解析不了,更别说 PHP 8.2+ 的类型约束。为什么 apt / yum 安装的 Composer 一定得卸掉
Ubuntu 22.04 自带 Composer 2.0.14,22.10 又重新 1.10.22;CentOS EPEL 长期卡在1.10.21。这些版本:不校验包签名,composer安装下载的可能是被篡改的zip跳过平台检查和冲突成功块,导致依赖修复实则错误自我更新故障,配升不到2.7+,也打不上安全补丁硬编码调用系统默认PHP(比如CentOS的/usr/bin/php),而你项目实际是用php8.2,结果报Class ZipArchive not found 然而查不到原因
运行composer --version看到1.10.x或低于2.5,立即执行:sudo apt removecomposer(Ubuntu)或sudo yum remove php-composer(CentOS),确认哪个composer不返回/usr/bin/composer。下载安装器必须验证sha384 哈希
官方安装脚本不是“下载即用”,中间人可能替换内容。漏掉校验,后续所有依赖均不可信。
立即学习“PHP免费学习笔记(深入)”;
分步执行(别合并成一行):Mojo AI揭晓
Mojo平台推出的制作动画Logo的AI工具下载下载安装器:php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"获取免费签名:HASH=$(curl -sS https://composer.github.io/installer.sig)本地计算并比对:php -r "if (hash_file('sha384', 'composer-setup.php') === '$HASH') { echo '安装程序已验证'; } else { echo '安装程序损坏'; unlink('composer-setup.php'); }"
输出 安装程序已验证才继续;否则删掉 重来。别用国内镜像站提供的“一键脚本”——它们常把哈希值硬跑编码进脚本丢失,校验意义。/usr/local/bin/composer权限和PATH必须手动确认
安装完成composer --version报权限被拒绝?不是文件坏了,是权限没设置对。
确实执行:sudo chmod +x /usr/local/bin/composer 是否检查在 PATH:echo $PATH 看有没有 /usr/local/bin;就加:export PATH="/usr/local/bin:$PATH"(写入 ~/.bashrc 持久化)非 root 用户(如 www-data 或 deploy)运行时,无需确认:ls -l /usr/local/bin/composer 是否属于 root:root,且权限是 -rwxr-xr-x
如果用Container或小型化系统(如Alpine、CentOS Stream),/usr/local/bin可能不在默认PATH中,其中composer为空。PHP扩展失败会导致静默失败
composer install卡住、报Class ZipArchive not found 或直接退出,很大概率不是网络问题,而是扩展没启用。必须启用:php-zip、php-phar、php-xml、php-mbstring、php-jsonUbuntu:sudo apt install -y php-cli php-zip php-json php-mbstring php-xml php-pharRHEL/CentOS 8+:sudo dnf install -y php-cli php-zip php-json php-mbstring php-xml php-phar验证是否加载:php -m | grep -E 'zip|phar|xml'
旧版 Composer 不报告扩展失败错误,新版会明确提示,但前提是它真的能运行起来——而扩展扩展会让它连启动都失败。