修复 yum 错误:DNS、软件仓库与 CentOS 7 停止支持
出版日期:
更新:
技术文章 > 修复 yum 错误:DNS、软件仓库与 CentOS 7 停止支持
2026状态和安全使用
结论:首先确定主机是否缺少网络连接、DNS 解析或有效的启用软件仓库。在 CentOS 7 上,正常的镜像故障也可能是生命周期问题:CentOS Linux 7 已于 2024 年 6 月 30 日结束生命周期,因此迁移比将面向互联网的生产服务器重新指向存档包更安全。
你将学到什么
- yum 如何使用软件仓库元数据以及为什么“无法解析主机”指向 DNS。
- 如何区分路由、解析器、软件仓库和操作系统生命周期故障。
- 为什么当前的 RHEL 系列系统即使存在
yum兼容性命令也使用 DNF。
适用人群:Linux 管理员在较旧的 RHEL 系列主机上诊断软件包管理器错误。
截至 2026 年的适用情况:下面的 CentOS 7 命令和镜像 URL 将保留作为历史故障排除上下文。不要将归档仓库视为安全支持软件的替代品;计划向受支持的平台进行经过测试的迁移。
安全注意事项:原始文章中的命令和配置示例尚未在当前生产环境中重新运行。应用之前,请在单独的测试环境中验证支持的版本、备份、访问控制和回滚步骤。
官方主要来源
概述。
本指南介绍 yum 的工作机制,并说明如何排查常见的软件仓库错误。
出现 “Could not retrieve mirrorlist http://mirrorlist.centos.org/?” 或 “curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"” 时,应先检查网络连接、DNS 解析和已启用的软件仓库配置。
这些错误通常不是 yum 本身的问题。
下面按照 yum 的请求流程逐项定位故障。
目录
- 什么是yum?
- 1-1. yum如何工作
- yum 失败的常见原因
- 2-1. 原因①未连接到网络
- 2-2. 原因② DNS 解析未正确配置
- 2-3. 原因③当前服务器缺少软件仓库配置
- 摘要
1. 什么是yum?
yum 是软件包管理器。执行 yum install httpd 时,它会解析依赖项,并从已启用的软件仓库下载元数据和 RPM 软件包。
yum 通过网络获取软件仓库元数据和软件包。
1-1. yum如何工作
基本流程如下:
1. yum 根据当前服务器的仓库配置选择目标软件仓库。
2. yum 从目标软件仓库下载元数据或软件包。
软件仓库配置位于 "/etc/yum.repos.d/",yum 根据这些配置确定下载位置。
该目录中的配置示例如下。
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
mirrorlist 项指定镜像列表的获取位置。$releasever、$basearch 和 $infra 会按当前系统展开;原环境得到的 URL 为 http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=。
该服务在当时会返回以下镜像 URL:
http://ftp.riken.jp/Linux/centos/7.9.2009/os/x86_64/
http://ftp.nara.wide.ad.jp/pub/Linux/centos/7.9.2009/os/x86_64/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7.9.2009/os/x86_64/
http://mirrors.cat.net/centos/7.9.2009/os/x86_64/
http://ftp.iij.ad.jp/pub/linux/centos/7.9.2009/os/x86_64/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/7.9.2009/os/x86_64/
http://ty1.mirror.newmediaexpress.com/centos/7.9.2009/os/x86_64/
http://ftp-srv2.kddilabs.jp/Linux/packages/CentOS/7.9.2009/os/x86_64/
http://mirror.vastspace.net/centos/7.9.2009/os/x86_64/
http://mirror.nus.edu.sg/centos/7.9.2009/os/x86_64/
yum 随后从选定镜像下载软件仓库元数据和 RPM 软件包。
2. yum 失败的常见原因
可沿着上述请求流程检查故障点。
2-1. 原因①未连接到网络
yum 需要连接远程软件仓库才能下载 RPM 软件包;主机无法联网时,请求会失败。
可在允许 ICMP 的环境中使用 ping 8.8.8.8 辅助检查基本连通性。由于许多网络会阻止 ICMP,ping 失败并不能单独证明网络中断,还应检查路由以及到获准 HTTPS 端点的连接。
2-2. 原因② DNS 解析未正确配置
软件仓库 URL 通常使用主机名。Could not resolve host: mirrorlist.centos.org 表示 DNS 解析器无法把该名称转换为 IP 地址。
应检查名称服务器配置,并使用环境中可用的 getent hosts、dig 或 host 查询软件仓库主机。不要仅凭 ping 结果判断 DNS 是否正常。
2-3. 原因③当前服务器缺少软件仓库配置
yum 从当前服务器的仓库配置中读取下载地址。网络和 DNS 均正常时,应检查 "/etc/yum.repos.d/" 下是否存在有效且已启用的软件仓库配置。
以下配置保留为历史示例。CentOS 7 的公共镜像基础设施已不再为当前生产系统提供安全支持;归档软件包也不能恢复生命周期支持。
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
3. 总结
排查 yum 错误时,应依次确认路由、DNS 解析和软件仓库配置。对于 CentOS 7,还必须考虑其已停止维护;长期解决方案是经过测试地迁移到受支持的操作系统。