当前位置: 首页 > article >正文

解决CentOS 8 YUM源更新后报错问题:无法下载AppStream仓库元数据

背景介绍

在尝试更新CentOS 8的YUM源以使用阿里云镜像时,遇到了Failed to download metadata for repo 'appstream'的错误。此错误通常出现在执行yum clean all && yum makecache命令之后,表明系统无法从指定的URL获取AppStream仓库的元数据。本文将指导 如何解决这一问题,并确保所有必要的仓库配置文件都得到正确的更新。

错误分析

根据提供的错误信息:

Errors during downloading metadata for repository 'appstream':
- Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]
错误: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-stream&arch=x86_64&repo=AppStream&infra=stock

上述错误提示我们,系统未能解析mirrorlist.centos.org的主机名,导致无法访问CentOS官方提供的镜像列表。这是因为自2022年1月31日起,CentOS团队已经移除了CentOS 8的所有包,并将其转移到了https://vault.centos.org。因此,我们需要手动调整/etc/yum.repos.d/目录下的相关配置文件,以便指向有效的镜像源。

解决步骤
步骤1:备份原有配置文件

为了防止意外情况发生,在进行任何更改之前,请先备份现有的YUM源配置文件。

sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
步骤2:下载并替换为阿里云镜像源

接下来,我们将下载适用于CentOS 8.5.2111版本的阿里云镜像源,并覆盖默认的CentOS-Base.repo文件。

sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
步骤3:编辑其他仓库配置文件

注意到不仅CentOS-Base.repo需要更新,AppStream和其他额外的仓库(如Extras)也需要相应的修改。这里给出一个示例性的CentOS-AppStream.repoCentOS-Extras.repo的内容模板:

CentOS-AppStream.repo

[AppStream]
name=CentOS-8.5.2111 - AppStream - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/$basearch/os/
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

CentOS-Extras.repo

[Extras]
name=CentOS-8.5.2111 - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/extras/$basearch/os/
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

可以直接创建或编辑这些文件,确保路径正确无误。对于每个仓库,都应指定至少一个baseurl,并且关闭GPG检查(gpgcheck=0),除非 有可靠的密钥来源。

步骤4:清理缓存并重建索引

完成以上操作后,再次运行以下命令来清除旧的缓存并生成新的索引:

sudo yum clean all
sudo yum makecache

shell直接执行代码根据自己的情况修改

# 定义基础URL和目录
base_url="https://mirrors.aliyun.com/repo"
target_dir="/etc/yum.repos.d"

# 定义要下载的repo文件列表
repo_files=(
  "CentOS-Advanced-Virtualization.repo"
  "CentOS-NFV-OpenvSwitch.repo"
  "CentOS-Stream-Extras-common.repo"
  "CentOS-Stream-PowerTools.repo"
  "CentOS-Base.repo"
  "CentOS-OpenStack-victoria.repo"
  "CentOS-Stream-Extras.repo"
  "CentOS-Stream-RealTime.repo"
  "CentOS-Base.repo.backup"
  "CentOS-Storage-common.repo"
  "CentOS-Stream-HighAvailability.repo"
  "CentOS-Stream-ResilientStorage.repo"
  "CentOS-Ceph-Nautilus.repo"
  "CentOS-Stream-AppStream.repo"
  "CentOS-Stream-Media.repo"
  "CentOS-Stream-Sources.repo"
  "CentOS-Messaging-rabbitmq.repo"
  "CentOS-Stream-Debuginfo.repo"
  "CentOS-Stream-NFV.repo"
)

# 遍历每个文件并下载
for repo_file in "${repo_files[@]}"; do
  curl -o "$target_dir/$repo_file" "$base_url/Centos-vault-8.5.2111.repo"
done

更新yum缓存

sudo yum makecache

验证结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/453f4aa9486c48948f80b6f34b83a364.png)



http://www.kler.cn/a/469147.html

相关文章:

  • 计算机网络 (22)网际协议IP
  • 面试高阶问题:对称加密与非对称加密的原理及其应用场景
  • Ant Design Pro写项目的总结经验(react)
  • C语言:枚举类型
  • 测试用例颗粒度说明
  • Oracle 11g rac + Dataguard 环境调整 redo log 大小
  • SMMU软件指南之使用案例(Stage 2使用场景)
  • MySQL第四弹----数据库约束和数据库设计
  • 【连续学习之LwM算法】2019年CVPR顶会论文:Learning without memorizing
  • STM32拓展 低功耗案例1:睡眠模式 (register)
  • JavaScript系列(8)-- Array高级操作
  • javaEE-网络编程-3 UDP
  • LabVIEW 实现自动对焦的开发
  • 编译与汇编
  • kubelet状态错误报错
  • linux 逻辑卷挂盘
  • F.interpolate函数
  • [Linux]redis5.0.x升级至7.x完整操作流程
  • 使用MySQL APT源在Linux上安装MySQL
  • spring mvc源码学习笔记之五
  • 【华为OD-E卷 - 九宫格按键输入 100分(python、java、c++、js、c)】
  • Linux系统常用命令详解
  • 怎么找回电脑所有连接过的WiFi密码
  • 【论文阅读笔记】LTX-Video: Realtime Video Latent Diffusion
  • 如何让编码更加高效专注?——程序员编程选明基 RD280U显示器
  • Django Swagger文档库drf-spectacular