CentOS 7 的生命周期结束(EOL)导致 yum 无法下载软件包的问题解决

更新 Yum 源以解决 EOL 问题

由于 CentOS 7 已于 2024 年 6 月 30 日停止维护(End of Life, EOL),其官方的软件源(mirror)已下线。在安装任何软件包之前,必须先将 yum 源的地址更改为官方的归档(archive)服务器 vault.centos.org,否则将无法下载。

如何检查 Yum 源是否需要更新

对于一个刚刚按照标准流程(例如根据 Win10 VMware CentOS 7 安装.md)安装好的 CentOS 7 系统,其 Yum 源几乎可以肯定是需要更新的,因为默认配置指向的官方源 mirror.centos.org 已经下线。

您可以通过以下两种方式来确认这一点:

方法一:尝试运行 yum 命令(推荐)

这是最直观的方法。打开终端,尝试运行任何需要从网络下载信息的 yum 命令,例如 yum update

bash 复制代码
yum update

如果您的 Yum 源配置是旧的,这个命令会执行失败,并显示类似以下的错误信息,提示无法连接到镜像站点 (mirrorlist.centos.org) 或找不到有效的仓库地址 (baseurl):

复制代码
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"

...

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

看到这样的报错,就说明您必须更新 Yum 源配置。

方法二:直接检查配置文件

您也可以直接检查 Yum 的配置文件 /etc/yum.repos.d/CentOS-Base.repo 来确认其指向的地址。运行以下命令:

bash 复制代码
grep 'mirrorlist' /etc/yum.repos.d/CentOS-Base.repo

如果输出结果中 mirrorlist=http://mirrorlist.centos.org/... 这一行没有被 # 注释掉,那就证明您的配置仍指向旧的、已下线的地址。


确认需要更新后,请继续以下步骤。

  1. 切换 Yum 源到 Vault 归档

    在运行以下命令修改配置文件之前,有必要了解其背后的原理。CentOS 的 yum 软件包管理器通过 /etc/yum.repos.d/ 目录下的 .repo 文件来寻找软件源。这些文件中通常包含两个关键指令:

    • mirrorlist:此指令指向一个 URL,yum 会通过它获取一份离您最近的镜像服务器列表,以提高下载速度。
    • baseurl:此指令直接指向一个具体的软件仓库地址。通常,如果 mirrorlist 指令有效,yum 会优先使用它;否则,yum 将会使用 baseurl

    由于 CentOS 7 已停止维护,mirrorlist.centos.org 已无法访问。因此,我们的策略是:

    1. 禁用 mirrorlist :通过注释掉此行,阻止 yum 尝试连接失效的地址。
    2. 启用并修改 baseurl :取消 baseurl 的注释,并将其地址指向可用的官方归档服务器 vault.centos.org

    以下 sed 命令便是实现这一策略的快捷方式,它会自动修改所有 CentOS 官方配置文件,将地址指向归档服务器:

    bash 复制代码
    sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
    sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
  2. 清理并重建 Yum 缓存

    修改配置后,需要清理旧的缓存并生成新的缓存,以确保变更生效。

    bash 复制代码
    yum clean all
    yum makecache

    成功执行后,您就可以正常使用 yum 命令了。

相关推荐
M78佐菲5 小时前
Linux学习笔记:TCP协议
linux·笔记·学习·tcp/ip·算法
Brilliantwxx5 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
不怕犯错,就怕不做6 小时前
git prune 自动删除本地记录中那些远程已经不存在的分支引用
linux·服务器·git
richdata6 小时前
商品数字化不是先做大数据,而是先把数据变成可用决策
大数据·运维·数据治理·商品数字化·智能补货·ai商品决策
weixin_416667967 小时前
【无标题】
运维·服务器·网络
一池秋_8 小时前
arm低配linux设备,桌面应用冷启动提速方法
linux·运维·arm开发
惜离殇8 小时前
从零开始的敲代码生活--Linux应用软件(文件操作基础1)
linux·c语言·文件操作·标准io
上海云盾-小余9 小时前
流量攻击复盘:为什么 WAF 完好,业务依旧瘫痪
运维·服务器·网络
IT大白鼠9 小时前
Docker 私有仓库管理:Harbor 企业级仓库搭建与镜像全生命周期管理
运维·docker·容器
戴西软件9 小时前
戴西iDWS.3DViz Suite数据轻量化可视化软件,从传统桌面软件向云端协同的重大突破
大数据·运维·网络·人工智能·机器学习·3d