无法为 repo 'AppStream' [CentOS] 下载元数据
我在我的一台服务器上安装了精简版的 CentOS 8。安装成功,但是,当我尝试使用更新系统时,yum update
我看到此错误消息:无法下载 repo 的元数据。以下是完整的错误。
# 英文版提示如下:
[root@autocontroller ~]# yum update
CentOS-8 - AppStream 70 B/s | 38 B 00:00
Error: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
# 中文版提示如下:
CentOS Linux 8 - AppStream
错误:为仓库 'appstream' 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist
/var/log/dnf.log
更多调试信息的输出:
2022-02-02T11:39:36Z DEBUG error: 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] (http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock).
2022-02-02T11:39:36Z WARNING 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]
2022-02-02T11:39:36Z DDEBUG Cleaning up.
2022-02-02T11:39:36Z SUBDEBUG
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/dnf/repo.py", line 573, in load
ret = self._repo.load()
File "/usr/lib64/python3.6/site-packages/libdnf/repo.py", line 394, in load
return _repo.Repo_load(self)
RuntimeError: 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]
但是,然后通过互联网连接和 DNS 进行验证,它可以正常工作,如下所示:
[root@autocontroller ~]# ping google.com
PING google.com (172.217.166.206) 56(84) bytes of data.
64 bytes from del03s13-in-f14.1e100.net (172.217.166.206): icmp_seq=1 ttl=115 ti me=43.5 ms
--- google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 43.508/43.508/43.508/0.000 ms
那么我是如何解决这个问题的呢?这里是。
方案一:修复无法为 repo 下载元数据
CentOS Linux 8 已于 2021 年 12 月 31 日结束生命周期 (EOL)。这意味着 CentOS 8 将不再从 CentOS 官方项目获得开发资源。在 2021 年 12 月 31 日之后,如果您需要更新您的 CentOS,您需要将镜像更改为vault.centos.org,它们将被永久存档。
第一步:进入/etc/yum.repos.d/
目录。
[root@autocontroller ~]# cd /etc/yum.repos.d/
第 2 步:运行以下命令
[root@autocontroller ~]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
[root@autocontroller ~]# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS -*
第 3 步:现在运行 yum 更新
[root@autocontroller ~]# yum update -y
方案二:手动升级为 CentOS Stream
# 将所有 repo 中的文件都替换为 CentOS Steam 的源
sudo sed -i "s|\$releasever|8-stream|g" /etc/yum.repos.d/CentOS-*.repo
# 更新源
yum makecache