如果遇到了 yum命令执行失败 的问题

一、错误原因分析
从报错信息 Could not retrieve mirrorlist http://mirrorlist.centos.org/... 和 Unknown error 可以看出:
- DNS 解析失败 :系统无法将
mirrorlist.centos.org解析为 IP 地址(报错Could not resolve host)。 - 软件源配置无效 :CentOS 7 已停止维护(2024 年 6 月结束生命周期),默认的官方源(
mirrorlist.centos.org)可能已失效,或您的网络无法访问该地址。 - 网络管理冲突(潜在) :如果您之前关闭了
NetworkManager但未正确配置传统network服务,也可能导致网络不通。
二、分步解决方法
步骤 1:检查网络连通性(IP 层)
先确认您的服务器能 ping 通外网 IP(比如百度):
bash
ping 8.8.8.8
- 如果 ping 不通 :说明网络配置(IP、网关、子网掩码)有问题,或虚拟机网络模式(如 NAT/桥接)未正确设置。
回到之前的网络配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33),确认IPADDR、GATEWAY、NETMASK正确,然后重启网络:
bash
systemctl restart network # 重启传统网络服务
- 如果 ping 得通 :说明 IP 层没问题,是 DNS 或软件源 的问题。
步骤 2:检查并修复 DNS 配置
您的网络配置文件中(ifcfg-ens33)已经设置了 DNS1=8.8.8.8 和 DNS2=114.114.114.114,但需要确认系统是否真的使用了这些 DNS。
执行以下命令查看当前 DNS:
bash
cat /etc/resolv.conf
-
如果输出中没有
nameserver 8.8.8.8或114.114.114.114,手动添加:bashecho "nameserver 8.8.8.8" >> /etc/resolv.conf echo "nameserver 114.114.114.114" >> /etc/resolv.conf -
再次测试 DNS 解析(以百度为例):
bashping www.baidu.com如果能 ping 通,说明 DNS 修复成功;如果仍不行,检查虚拟机网络模式(如改为"桥接模式"或确认 NAT 服务正常)。
步骤 3:修复/更换 CentOS 7 软件源(关键!)
CentOS 7 已停止官方维护,默认源(mirrorlist.centos.org)失效。需要更换为第三方镜像源(如阿里云、网易、清华源)。
方法:更换为阿里云 CentOS 7 源
-
备份原有源配置:
bashmv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup -
下载阿里云的 CentOS 7 源配置:
bashwget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo如果
wget不存在,先执行yum install wget(但如果 yum 还不能用,可能需要先手动下载或用其他方法)。 -
清除 yum 缓存并重新生成:
bashyum clean all yum makecache -
再次执行
yum update,应该就能正常更新了。
步骤 4:处理 NetworkManager 冲突(可选)
如果您之前关闭了 NetworkManager,但传统 network 服务未正确启动,也会导致网络问题。可以检查 network 服务状态:
bash
systemctl status network
-
如果显示
inactive (dead),启动它:bashsystemctl start network systemctl enable network # 设为开机自启
三、总结
最常见的原因是 CentOS 7 官方源失效 + DNS 解析失败 。通过更换第三方源 (如阿里云)和修复 DNS ,即可解决 yum update 失败的问题。
如果仍有问题,可提供 ping 8.8.8.8、cat /etc/resolv.conf、cat /etc/yum.repos.d/CentOS-Base.repo 的输出,进一步分析~