第一步:检查系统版本
在修改任何配置之前,先确定你的 CentOS 版本,因为不同版本的镜像源配置文件不同。
cat /etc/redhat-release
这个命令会显示你的 CentOS 版本信息,例如 CentOS Linux release 7.9.2009 (Core)
。从你的错误日志中包含 el7
的字样来看,你使用的很可能是 CentOS 7 系列。
第二步:配置正确的 DNS 服务器
这是解决 Could not resolve host
错误的关键。我们将系统的 DNS 服务器指向一些可靠的公共 DNS。
编辑网络解析配置文件:
vi /etc/resolv.conf
在文件中添加(或修改为)以下内容。你可以选择国内可靠的公共 DNS,比如阿里云的
223.5.5.5
和114 DNS
的114.114.114.114
。nameserver 223.5.5.5 nameserver 114.114.114.114
- 提示: 在
vi
编辑器中,按i
键进入插入模式,编辑完成后按Esc
键退出插入模式,然后输入:wq
并回车来保存并退出。
- 提示: 在
验证 DNS 是否配置成功。执行
ping
命令测试一下:ping www.baidu.com
如果能够看到来自
www.baidu.com
的 IP 地址和返回的数据包,说明你的网络和 DNS 解析已经正常工作了。按Ctrl + C
停止ping
。
第三步:更换为国内 YUM 镜像源
既然网络问题已经解决,我们来更换 YUM 镜像源。以 CentOS 7 为例,这里推荐使用阿里云或网易 (163) 的镜像源。
备份当前的镜像源文件,这是一个好习惯,以防万一。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载新的镜像源文件。选择以下任意一个即可:
选项A:使用阿里云镜像源 (推荐)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
选项B:使用网易 (163) 镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/Centos7-Base-163.repo
注意: 如果
wget
命令不存在,你可以先尝试用curl
下载:# 阿里云 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 网易 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/Centos7-Base-163.repo
第四步:清除缓存并生成新缓存
更换完镜像源配置文件后,需要清除旧的缓存并让系统根据新的配置文件生成缓存。
清除 YUM 缓存:
yum clean all
生成新的缓存:
yum makecache
执行这个命令时,你应该能看到系统正在从你新配置的镜像源(如
mirrors.aliyun.com
)下载元数据。如果没有再出现Could not resolve host
错误,说明所有配置都已成功。
第五步:测试安装软件
最后,尝试安装一个软件(比如 vim
)来验证问题是否已彻底解决。
yum install -y vim
如果软件能够顺利下载并安装,那么恭喜你,问题已经解决了!