CentOS yum有时出现“Could not retrieve mirrorlist ”的解决办法——resolv.conf的配置

本文解决在CentOS环境下安装软件时遇到的DNS配置问题,通过配置`/etc/resolv.conf`文件来解决无法获取镜像列表的问题。

[root@localhost ~]# yum -y install wget   (注:在下载wget命令并安装)
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=5&arch=i386&repo=os error was
[Errno 4] IOError: <urlopen error (-3, '\xe5\x9f\x9f\xe5\x90\x8d\xe8\xa7\xa3\xe6\x9e\x90\xe6\x9a\x82\xe6\x97\xb6\xe5\xa4\xb1\xe8\xb4\xa5')>
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
[root@localhost ~]# yum install gcc-c++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=addons error was
[Errno 4] IOError: <urlopen error (-3, 'Temporary failure in name resolution')>
Error: Cannot find a valid baseurl for repo: addons
不管是用上面还是用下面那命令都会出现那错误
原因:没有配置resolv.conf
解决方法:
到/etc目录下配置resolv.conf加入nameserver IP,如:
nameserver 8.8.8.8
nameserver 8.8.4.4
search localdomain
保存再次运行上面命令就可以。
=================================

/etc/resolv.conf 配置DNS 客户 

/etc/resolv.conf 配置DNS 客户
文件/etc/resolv.conf 配置DNS 客户,它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数。
下面是一个例子文件:
nameserver 8.8.8.8
nameserver 8.8.4.4
search localdomain
合法的参数及其意义如下:
nameserver 表明DNS 服务器的IP 地址。可以有很多行的nameserver,每一个带一个I P 地址。在查询时就按nameserver 在本文件中的顺序进行,且只有当第一个nameserver 没有反应时才查询下面的nameserver.
domain 声明主机的域名。很多程序用到它,如邮件系统;当为没有域名的主
机进行DNS 查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点( . )前面的内容。
search 它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search 声明的域中分别查找。domain 和search 不能共存;如果同时存在,后面出现的将会被使用。
sortlist 允许将得到域名结果进行特定的排序。它的参数为网络/掩码对。允许任意的排列顺序。Red Hat 中没有提供缺省的/ e t c / r e s o l v. c o n f 文件,它的内容是根据在安装时给出的选项动态创建的。
### CentOS Yum Could Not Retrieve Mirrorlist 的解决方案 在 CentOS 系统中,`yum` 命令用于管理软件包的安装、更新和删除。然而,在某些情况下可能会遇到 `Could not retrieve mirrorlist` 错误,这通常是因为无法解析镜像列表地址或者当前配置的镜像源不可用。 以下是针对该问题的具体解决措施: #### 方法一:修改 DNS 配置 DNS 配置不正确可能导致无法解析 `mirrorlist.centos.org` 地址。可以通过编辑 `/etc/resolv.conf` 文件来更改系统的 DNS 设置。 ```bash sudo vi /etc/resolv.conf ``` 将以下内容添加到文件中: ``` nameserver 8.8.8.8 nameserver 8.8.4.4 ``` 保存并退出后尝试重新运行 `yum` 命令[^1]。 #### 方法二:替换 YUM 源为国内镜像 可能当前使用的 YUM 源已经失效或访问速度较慢。可以将其替换为更稳定的国内镜像源,例如阿里云或清华大学开源镜像站。 ##### 步骤 1:备份原始 YUM配置文件 ```bash sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup ``` ##### 步骤 2:下载新的 YUM配置文件 以阿里云为例,执行以下命令: ```bash sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo ``` 对于清华大学开源镜像站,则可使用以下命令: ```bash sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/help/centos/ ``` ##### 步骤 3:清理缓存并重建索引 ```bash sudo yum clean all sudo yum makecache ``` 完成后再次测试 `yum` 功能是否正常工作[^4]。 #### 方法三:手动设置 BaseURL 和 GPGKey 如果仍然存在问题,可以直接指定 `baseurl` 并禁用 `metalink` 或者调整其优先级较低的位置。通过编辑 `/etc/yum.repos.d/CentOS-Base.repo` 文件实现这一点。 找到 `[base]`, `[updates]`, `[extras]` 这些部分下的 `mirrorlist` 行注释掉,并加入具体的 URL 如下所示: ``` [base] name=CentOS-$releasever - Base baseurl=http://vault.centos.org/$contentdir/$stream/BaseOS/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial ``` 重复此操作至所有相关节结束[^3]。 --- ### 总结 以上三种方式均有助于修复因网络连接失败引发的 `Could not retrieve mirrorlist` 错误。推荐先从简单快捷的方法入手——比如切换成稳定高效的国内镜像站点;若依旧未果再考虑深入排查如 DNS 故障之类潜在原因所在之处。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值