Yum更新系统包出错的排查与修复指南
一、快速自检与通用修复
ping -c 4 8.8.8.8、nslookup mirrorlist.centos.org;若解析失败,写入DNS:echo "nameserver 8.8.8.8" | tee /etc/resolv.conf。yum clean all && yum makecache。yum update --disablerepo=<repo_id>;永久禁用:yum-config-manager --disable <repo_id>;设置仓库不可用即跳过:yum-config-manager --save --setopt=<repo_id>.skip_if_unavailable=true。yum --exclude=kernel* update;内存较小(如128M)可先列包再少量多次更新:yum list updates。二、常见错误与对应处理
yum install -y yum-utils;随后执行yum-complete-transaction或yum-complete-transaction --cleanup-only,必要时用yum history redo last重做最后一次事务,再yum update。rpm -q systemd-libs查看重复版本;yum update libgudev1先升级关联包;随后rpm -e systemd-libs-<旧版本>删除旧包。避免直接关闭多库检查(--setopt=protected_multilib=false),以免引入更深层问题。/etc/yum.repos.d/*.repo中的baseurl;临时禁用出错的仓库;若官方镜像不可用,切换到可用镜像或存档源(如国内镜像或vault)。/etc/resolv.conf是否包含有效nameserver(如8.8.8.8),必要时手动写入并测试解析。mirrorlist.centos.org,报“Cannot find a valid baseurl…”。vault.centos.org或国内镜像的vault目录),并确保DNS可用。三、CentOS 7 EOL与容器场景的专项处理
cd /etc/yum.repos.d/ && mkdir backup && mv *.repo backup/cat >/etc/yum.repos.d/CentOS-Base.repo <<'EOF'
[base]
name=CentOS-7 - Base
baseurl=http://vault.centos.org/centos/7/os/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[updates]
name=CentOS-7 - Updates
baseurl=http://vault.centos.org/centos/7/updates/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[extras]
name=CentOS-7 - Extras
baseurl=http://vault.centos.org/centos/7/extras/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
EOF
yum clean all && yum makecacheecho "nameserver 8.8.8.8" | tee /etc/resolv.confyum update四、实用命令清单
yum-complete-transaction、yum-complete-transaction --cleanup-only、yum history redo lastyum-config-manager --disable <repo_id>、yum-config-manager --save --setopt=<repo_id>.skip_if_unavailable=trueyum clean all、yum makecacheyum --exclude=kernel* update、yum list updatesping、nslookup mirrorlist.centos.org、cat /etc/resolv.confecho "nameserver 8.8.8.8" | tee /etc/resolv.conf