在 Linux 中使用 yum 时常见报错有很多种,下面按常见场景 + 解决办法给你整理一份实用排查指南。你可以先对照报错信息,再选对应方案。
# 1. 清缓存
yum clean all
# 2. 重建缓存
yum makecache
# 3. 更新
yum update
如果还不行,再看下面具体错误。
Could not retrieve mirrorlist / 无法连接仓库原因:网络问题、DNS、仓库地址失效
解决
# 测试网络
ping mirrors.aliyun.com
# 修改 DNS
vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
或切换国内源(CentOS):
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
Another app is currently holding the yum lock原因:yum 被占用
解决
rm -f /var/run/yum.pid
或
kill -9 <pid>
No package xxx available原因:仓库里没有该包
解决
yum search xxx
或启用 EPEL:
yum install epel-release
Error: Cannot retrieve repository metadata原因:repo 文件错误或系统版本不对
解决
cd /etc/yum.repos.d/
ls
删除无效 repo:
rm -f 不需要的.repo
Repository not found / 404原因:系统已 EOL(如 CentOS 6/8)
解决(CentOS 8 示例)
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
GPG key retrieval failed
解决
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
或临时忽略(不推荐):
yum install xxx --nogpgcheck
Protected multilib versions
解决
yum install xxx --setopt=protected_multilib=false
如果你愿意,可以把完整报错贴出来,我可以一步到位帮你解决。建议包括:
cat /etc/redhat-release)如果你愿意,直接把报错内容贴出来,我帮你“对症下药”。