解决Failed to download metadata for repo ‘AppStream’

原贴:https://www.cnblogs.com/EthanWong/p/15932675.html
在CentOS 8 上执行命令 sudo yum update 时报错:

[root@VM-24-13-centos ~]# sudo yum update
Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/CentOS-      Epel.repo; Configuration: OptionBinding with id "failovermethod" does not exist
CentOS Linux 8 - AppStream                       91  B/s |  38  B     00:00

Error: Failed to download metadata for repo 'appstream': Cannot prepare internal     mirrorlist: No URLs in mirrorlist

事实上我上面是报的两个错误,我们一个个来解决:

第一个问题:#
Configuration: OptionBinding with id “failovermethod” does not exist

看报错我们知道是/etc/yum.repos.d/CentOS-Epel.repo 文件中的 failovermethod=priority 出现问题,我们找到这个文件,对这个字段进行注释:

vim /etc/yum.repos.d/CentOS-Epel.repo
第二个问题:#
Error: Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist

在这个问题上我卡了几乎一个下午,网上有各种解决方案,我整理了一下,逐步排查即可:

查看CentOS 8 所在服务器网络是否出现问题,可以用 ping www.baidu.com 进行测试。

网络没问题就看对应的软件源是否出现问题,具体排查/etc/yum.repos.d目录下这三个文件:

CentOS-Base.repo
CentOS-AppStream.repo
CentOS-Extras.repo
如果上述三个文件中含有 mirrorlist 字段,将这些字段进行注释,并将 baseurl 修改为国内的软件源,阿里云baseurl=https://mirrors.aliyun.com/centos/ r e l e a s e v e r / B a s e O S / releasever/BaseOS/ releasever/BaseOS/basearch/os/或者腾讯云baseurl=https://mirrors.tencentyun.com/centos/ r e l e a s e v e r / B a s e O S / releasever/BaseOS/ releasever/BaseOS/basearch/os/

如果前两个方法都没有解决,说明不是源的问题,查了好久看到这篇帖子:https://techglimpse.com/failed-metadata-repo-appstream-centos-8/

CentOs Linux 8 从 2021.10.31 号后已经停止维护,所以之后更新镜像需要通过 vault.centos.org来获取更新。
在这里插入图片描述
所以需要修改软件源mirrors 地址,具体操作如下:

进入yum.repos.d 目录下

cd /etc/yum.repos.d/

修改源链接

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

要将之前的mirror.centos.org 改成 vault.centos.org

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

其实上述报错就是软件源配置的问题,经过上述步骤细心排查基本能解决。

你可能感兴趣的:(centos,linux,服务器)