CentOS 7 镜像源更换:解决 `Could not resolve host: mirrorlist.centos.org` 错误

广告位

随着 CentOS 7 停止官方全面支持,默认镜像源如 mirrorlist.centos.org 可能不可用,导致用户在执行 yum update 等命令时遇到解析错误。解决方法是更换为可靠镜像源如 163、阿里云或腾讯云,通过修改 /etc/yum.repos.d/CentOS-Base.repo 文件并清除缓存后重建即可解决问题。

随着 CentOS 7 的生命周期接近尾声,官方已经停止对其提供全面支持。但是像Hostease/RakSmart等提供商,为了更好的让软件兼容老版本,因此仍然提供例如Centos 7等镜像,这意味着CentOS 7 在结束支持后,会存在一些软件使用上的问题,包括 mirrorlist.centos.org 在内的一些默认镜像源可能会不可用,导致用户在执行 yum update 等命令时遇到类似以下错误:

Could not resolve host: mirrorlist.centos.org; Unknown error

这个问题在最近广泛出现,导致许多用户无法正常更新和安装软件包。解决这一问题的最佳方法是更换系统默认的镜像源为其他可靠的镜像源。本文将详细介绍如何更换 CentOS 7 的镜像源,以确保系统的正常更新和软件安装。

错误原因分析

当我们执行 yum update 命令时,系统会尝试从默认的镜像源获取最新的软件包信息。但由于 CentOS 7 的官方镜像源停止解析,我们会看到如下错误提示:

Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
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; Unknown error"


 One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Run the command with the repository temporarily disabled
            yum --disablerepo=<repoid> ...

     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:

            yum-config-manager --disable <repoid>
        or
            subscription-manager repos --disable=<repoid>

     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

Cannot find a valid baseurl for repo: base/7/x86_64

这一错误导致 YUM 无法找到有效的基础 URL,从而无法继续操作。

解决方案:更换镜像源

步骤 1:备份原有的 YUM 源配置文件

在修改任何配置文件之前,最好先备份当前的配置文件,以防需要恢复原配置。执行以下命令进行备份:

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

步骤 2:编辑 YUM 源配置文件

使用您喜欢的文本编辑器(如 nanovim 等)编辑 /etc/yum.repos.d/CentOS-Base.repo 文件:

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

步骤 3:替换为新的 YUM 源

将文件内容替换为新的镜像源。这里提供几个常用的镜像源配置,包括 163、阿里云和腾讯云。您可以根据自己的需求选择合适的镜像源。

163 镜像源

[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

阿里云镜像源

[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

腾讯云镜像源

[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7

步骤 4:清除 YUM 缓存并更新

在更换镜像源后,执行以下命令清除缓存并重新生成缓存:

sudo yum clean all
sudo yum makecache
sudo yum update

总结

由于 CentOS 7 已经结束官方支持,原有的镜像源可能会不可用。通过更换为其他可靠的镜像源,如 163、阿里云或腾讯云,我们可以解决 Could not resolve host: mirrorlist.centos.org 的问题,从而继续正常地使用 YUM 更新和安装软件包。希望本文能帮助遇到相同问题的用户顺利解决镜像源解析问题。

关于作者: Harrison K

为您推荐

广告位

Leave a Reply

Your email address will not be published. Required fields are marked *