Yum安装中出现错误mirrorlist.txt的解决方法

  • Post category:Linux

当使用Yum安装软件包时,有时候会出现错误 Cannot find a valid baseurl for repo: base/7/x86_64Could not retrieve mirrorlist...,这通常是因为Yum无法获取仓库的mirrorlist.txt文件。以下是解决这个问题的步骤:

步骤一:检查网络连接

首先,请确保你的机器能够正常访问外网。可以使用 ping 命令来测试网络连接,例如:

ping www.baidu.com

如果无法正常连接,请检查你的网络设置或者等待网络连接恢复。

步骤二:备份原配置文件

在更改配置文件之前,请备份原有的配置文件,以防止出现配置文件不当,导致更多错误的发生。

sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

步骤三:修改Yum配置文件

/etc/yum.repos.d 目录中,可以看到许多以 .repo 结尾的配置文件,这些文件指定了yum软件包管理器从哪里获取软件包。我们需要修改其中一个文件,来解决mirrorlist.txt的问题。在此以CentOS 7为例,执行以下命令来编辑CentOS-Base.repo:

sudo vi /etc/yum.repos.d/CentOS-Base.repo

找到文件中以 [base] 开头的那一行,将 enabled=1gpgcheck=1 后面的数字改为0,即:

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/CentOS/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

保存退出后,需要清除yum缓存:

sudo yum clean all

步骤四:启用新的Yum源并安装软件包

现在重新启用yum源并尝试安装软件包:

sudo yum makecache
sudo yum install <package>

例如,尝试安装nginx:

sudo yum install nginx

当然你也可以尝试其他包来验证配置修改之后的效果。

示例一:

如 CentOS 7.0,在执行yum -y update时报错:

http://mirrors.163.com/centos/$releasever/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found

这是由于使用非最新版本的CentOS,官方的镜像源已经不支持了。经过修改的yum.repo源如下:

[base]
name=CentOS-7 - Base - tencentyun
failovermethod=priority
baseurl=http://mirrors.tencentyun.com/centos/7/os/x86_64/
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-7 - Updates - tencentyun
failovermethod=priority
baseurl=http://mirrors.tencentyun.com/centos/7/updates/x86_64/
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-7 - Extras - tencentyun
failovermethod=priority
baseurl=http://mirrors.tencentyun.com/centos/7/extras/x86_64/
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7

示例二:

如CentOS 7,现在启用EPEL 7源,并进行安装,然而,安装时出现以下错误:

http://mirrors.coreix.net/fedora-epel/7/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found

这是由于EPEL 7源已经更换地址(http://mirrors.coreix.net已关闭)。经过修改的epel.repo源如下:

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1