CentOS 8中 更新或下载时报错:Failed to download metadata for repo ‘appstream‘

现象:

CentOS Linux 8 - AppStream                                                                                                            0.0  B/s |   0  B     00:00    
Errors during downloading metadata for repository 'appstream':
  - Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]

原因:CentOSLinux 8已于 2021年12月31日停止更新和维护,由于CentOS 团队从官方镜像中移除CentOS 8的所有包,所以在使用yum源安装或更新会报上述失败错误。

1. 进入 YUM 仓库的配置目录:

cd /etc/yum.repos.d/

解释:

  • cd 命令用于更改当前工作目录。在这里,切换到 /etc/yum.repos.d/ 目录下,这是 CentOS 系统中 YUM 仓库配置文件的存放位置。每个 .repo 文件都是一个 YUM 源配置文件,系统通过这些文件知道从哪里获取软件包。

    用途:通过访问该目录,用户可以修改 YUM 源的配置文件,比如更换镜像地址、启用或禁用仓库等。

2. 修改镜像源的配置:

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*

解释:

  • sed 是一个流编辑器,可以用于对文本进行搜索、替换、插入、删除等操作。

  • -i 选项表示直接编辑文件并保存修改结果("in-place")。

  • s/mirrorlist/#mirrorlist/g 是替换命令:它会查找文件中所有的 mirrorlist 字段,将其替换为 #mirrorlist,从而注释掉这些行(注释行的作用是让 YUM 忽略该行的配置)。

  • /etc/yum.repos.d/CentOS-* 表示修改以 CentOS- 开头的所有 YUM 源配置文件。

    用途:通常,mirrorlist 是一个可以动态选择最佳镜像的 URL 连接。将其注释掉后,YUM 将不再使用镜像列表,而是使用静态的 baseurl 作为下载源。

sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

解释:

  • 这条命令同样使用 sed 来进行文本替换。

  • s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g:它会将原本被注释掉的 baseurl#baseurl),改为新的 CentOS 历史版本库 vault.centos.org,并取消注释(移除 #)。

  • mirror.centos.org 是 CentOS 官方的镜像站点,而 vault.centos.org 是 CentOS 归档库,专门存放不再维护的旧版本。

    用途:在某些情况下,官方的 mirror.centos.org 镜像站点不再提供旧版本的包或链接不可用,所以需要使用 vault.centos.org 来获取老版本的包。


3. 清理缓存并重新生成缓存:

yum clean all && yum makecache

解释:

  • yum clean all:清除 YUM 的缓存文件,包括软件包缓存和元数据缓存。这个命令可以确保在重新下载包或元数据时不会使用过时的缓存数据。

  • yum makecache:重新生成 YUM 的包索引缓存。这个操作会从配置的镜像源下载最新的包信息,方便后续的包安装或更新。

    用途:在修改 YUM 源配置后,执行 yum clean allyum makecache 可以确保系统使用最新的仓库元数据,从新的源中获取可用的软件包。

总结:

这些步骤的总体目的就是修改 CentOS 的 YUM 仓库配置,将镜像源切换为 vault.centos.org,这是 CentOS 的历史版本库。当系统无法从默认镜像源获取软件包时,使用 vault.centos.org 是一种解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值