skip to content
Wentao Zhang

解决CentOS Yum安装软件报错

/ 3 min read

1. 具体报错

在使用CentOS操作系统的yum包管理器安装软件时,遇到了无法检索镜像列表的错误。具体的错误信息如下:

Terminal window
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"
One of the configured repositories failed (未知),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail.
Cannot find a valid baseurl for repo: base/7/x86_64

这个错误导致yum无法正常工作,无法安装或更新软件包。

2. 可能的原因

这个错误发生的原因可能有以下几点:

  • 网络连接问题:无法连接到CentOS的官方镜像源服务器。
  • DNS解析失败:无法解析mirrorlist.centos.org的主机名。
  • CentOS官方镜像源暂时不可用或者存在问题。
  • 本地网络配置问题,如代理设置不正确。
  • 防火墙设置阻止了对镜像源的访问。

在这个具体案例中,最可能的原因是无法连接到CentOS的官方镜像源,或者DNS解析失败。

3. 解决方案

解决这个问题的方法是替换CentOS的默认镜像源为其他可用的镜像源,如阿里云镜像。以下是具体的解决步骤:

3.1 定位配置文件

首先,找到yum的仓库配置文件,通常位于 /etc/yum.repos.d/ 目录下:

Terminal window
[zhcs@localhost ~]$ ls /etc/yum.repos.d
CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo nginx.repo
CentOS-CR.repo CentOS-Media.repo CentOS-x86_64-kernel.repo
CentOS-Debuginfo.repo CentOS-Sources.repo docker-ce.repo

3.2 修改配置文件

主要需要修改的是 CentOS-Base.repo 文件。我们将使用阿里云的镜像源来替换默认的CentOS镜像。

编辑 CentOS-Base.repo 文件,将 baseurl 修改为阿里云镜像地址,并注释掉 mirrorlist 行:

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# 其他部分类似修改...

3.3 清理和更新

修改完配置文件后,需要清理yum缓存并更新:

Terminal window
sudo yum clean all
sudo yum update

3.4 解决流程图

开始: Yum安装报错
定位问题: 检查/etc/yum.repos.d/目录
找到CentOS-Base.repo文件
修改baseurl为阿里云镜像
注释mirrorlist行
保存修改后的配置文件
清理yum缓存: sudo yum clean all
更新yum: sudo yum update
问题解决?
结束: Yum恢复正常
检查网络连接和防火墙设置