Centos 用yum或者dnf安装包的时候发现会报错:
Error: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
搜了好久发现中文blog确实找不到解决方法,尝试成功后总结如下:
根本原因:CentOS Linux 8 官方宣布于2021.12.31开始停止维护,延期到2022.1.31执行完毕。老的镜像将移到vault.centos.org。所以,以上报错是由于CentOS 8 EOS 将CentOS 8 Mirror 站点转换为Vault 并且找不到Mirror 站点而出现的问题。
所以,解决方案有两种:
第一:
为了持续使用,必须将发行版更改为 CentOS 8 Stream 才能获得持续支持。但是不管是Stream 8还是7在24年的时候都会停止维护。
CentOS 7 (EOL 2024-06-30) or CentOS Stream 8 (EOL 2024-05-31).
第二:
通过将现有镜像站点转换为 Vault 来使用它。
执行以下脚本更换镜像源:
#!/bin/bash
cd /etc/yum.repos.d/
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-*
yum update -y
注意:这里的baseurl要换成你的centos中的bashurl。
cat查看是否更换成功:
然后再用yum 或 dnf 安装需要的包,问题解决。
当然,如果不是必须的还是换成Ubuntu更好。
参考:
https://chhanz.github.io/linux/2022/02/04/dnf-error-centos-8/
https://techglimpse.com/failed-metadata-repo-appstream-centos-8/