Failed to download metadata for repo ‘AppStream‘: Cannot download repomd.xml: Cannot download repoda

2021年12月31日CentOS 8 EOL。按照社区规则,CentOS 8的源地址http://mirror.centos.org/centos/8/内容已移除,目前第三方的镜像站中均已移除CentOS 8的源。阿里云的源http://mirrors.cloud.aliyuncs.com和http://mirrors.aliyun.com也无法同步到CentOS 8的源。当您在阿里云上继续使用默认配置的CentOS 8的源会发生报错。

#curl -sSL https://get.daocloud.io/docker | sh
 #Executing docker install script, commit: 93d2499759296ac1f9c510605fef85052a2c32be
+ sh -c 'yum install -y -q yum-utils'
错误:Failed to download metadata for repo 'AppStream': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

阿里云解决方案

操作步骤
1、运行以下命令备份之前的repo文件

rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repo

2、运行以下命令下载最新的repo文件

wget https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo -O /etc/yum.repos.d/Centos-vault-8.5.2111.repo
wget https://mirrors.aliyun.com/repo/epel-archive-8.repo -O /etc/yum.repos.d/epel-archive-8.repo

3、运行以下命令替换repo文件中的链接。

sed -i 's/mirrors.cloud.aliyuncs.com/url_tmp/g'  /etc/yum.repos.d/Centos-vault-8.5.2111.repo &&  sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo && sed -i 's/url_tmp/mirrors.aliyun.com/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo
sed -i 's/mirrors.aliyun.com/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/epel-archive-8.repo

4、运行以下命令重新创建缓存。

yum clean all && yum makecache

yum源和epel源切换完成后,即可使用yum install命令在实例上安装您所需要的软件包。

<think>好的,我现在需要解决用户遇到的Failed to download metadata for repo 'AppStream'的问题。根据引用内容,CentOS 8的官方源已经停止服务,导致yum无法使用。首先,我应该确认用户是否使用的是CentOS 8,因为这个问题主要是由于官方源迁移引起的。然后,解决方法通常是更换镜像源到vault.centos.org或者使用其他替代源,比如阿里云、腾讯云等。 接下来,我需要按照步骤来指导用户操作。第一步是备份原来的repo文件,这是一个好习惯,防止出错后可以恢复。然后,替换baseurl中的镜像地址,将mirror.centos.org改为vault.centos.org,并确保路径正确,特别是带有版本号和系统架构的部分,比如8.5.2111和x86_64。另外,可能需要禁用一些插件,如fastestmirror,以避免干扰。 用户可能对sed命令不熟悉,所以需要详细说明每个命令的作用。同时,清理yum缓存并重新生成也是关键步骤,确保新的配置生效。此外,如果用户使用的是较新的系统版本,比如8.5,可能还需要检查路径中的版本号是否正确,或者是否需要更新到另一个可用的版本。 另外,考虑到用户可能在使用不同的架构,比如aarch64,需要指出路径中的差异,并提供相应的命令示例。最后,建议用户如果问题依旧,尝试其他镜像源或升级到CentOS Stream,这样能更全面地覆盖可能的解决方案。 在生成相关问题的时候,要围绕用户可能遇到的后续问题,比如如何更换其他镜像源,或者处理其他仓库如BaseOS的类似错误,以及升级到Stream的步骤。这些相关问题能帮助用户进一步解决问题,避免重复提问。 总结来说,我需要将解决步骤分点列出,确保清晰易懂,同时引用提供的参考资料来支持解决方法,并在最后生成相关的问题,扩展用户的解决思路。</think>### 解决方案:Failed to download metadata for repo 'AppStream'问题 此错误通常由CentOS 8官方源停止维护引起,以下是分步解决方法: --- #### **步骤1:修改仓库镜像源地址** 1. 备份原仓库文件: ```bash sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* ``` 2. 手动替换仓库路径(适用于CentOS 8.5): ```bash sudo sed -i 's|baseurl=http://vault.centos.org/$contentdir/$releasever/AppStream/$basearch/os/|baseurl=http://vault.centos.org/8.5.2111/AppStream/x86_64/os/|g' /etc/yum.repos.d/CentOS-AppStream.repo ``` --- #### **步骤2:禁用冲突插件** 若存在`fastestmirror`插件干扰,需关闭: ```bash sudo sed -i 's/enabled=1/enabled=0/g' /etc/yum/pluginconf.d/fastestmirror.conf ``` --- #### **步骤3:清理并重建缓存** ```bash sudo yum clean all sudo yum makecache ``` --- #### **其他情况处理** - **架构差异**:若系统为ARM架构(如aarch64),需将路径中的`x86_64`替换为`aarch64` ```bash sudo sed -i 's/x86_64/aarch64/g' /etc/yum.repos.d/CentOS-*.repo ``` - **升级到CentOS Stream**(长期解决方案)[^5]: ```bash sudo dnf swap centos-linux-repos centos-stream-repos sudo dnf distro-sync ``` --- #### **引用说明** - CentOS 8官方仓库于2022年1月停止维护,需切换至`vault.centos.org`或第三方镜像源[^3][^5] - 路径`8.5.2111`对应CentOS 8.5的归档版本,其他版本需调整版本号[^1][^4] ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值