在 CentOS 8 中无法运行 yum update

在 CentOS 8 中无法运行 yum update

我想在这篇文章前面加上这个免责声明:我不太熟悉 yum 的功能,也不熟悉自 CentOS 8 EOL 以来所需更改的细节。

大约一个月前,我的容器构建无法成功运行,因为当我执行 yum update 时,出现了错误。我在这里找到了解决方案,并将其添加到我的容器构建中:

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

这让我度过了一段时间,直到今天它似乎又坏了。

bash-4.4# yum update
CentOS Linux 8 - AppStream                                                                                                                                                                                   149 kB/s | 8.4 MB     00:58
CentOS Linux 8 - BaseOS                                                                                                                                                                                      113 kB/s | 4.6 MB     00:41
CentOS Linux 8 - Extras                                                                                                                                                                                      716  B/s |  10 kB     00:14
CentOS Linux 8 - PowerTools                                                                                                                                                                                  0.0  B/s |   0  B     01:26
Errors during downloading metadata for repository 'powertools':
  - Curl error (28): Timeout was reached for http://vault.centos.org/centos/8/PowerTools/x86_64/os/repodata/981185e5d80d51024e5246ed47f7f69605160518c22103379bb71376e2dccb14-filelists.xml.gz [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
  - Curl error (28): Timeout was reached for http://vault.centos.org/centos/8/PowerTools/x86_64/os/repodata/4b94ac0555ec1e15718dd9d77f995ec7096d98974b4c7a427b8e03c20e9c663d-primary.xml.gz [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]

所以我找到了一些其他的解决方案,但都没有奏效。例如,我发现了这篇文章:CentOS 8 升级 - 如何解决警告:加载“/etc/yum.repos.d/CentOS-AppStream.repo”失败,跳过

它让我想到了以下几点:

dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos

dnf 发行版同步

但有了这个,我得到了这个:

    bash-4.4# dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos
CentOS Linux 8 - Extras                                                                                                                                                                                       22 kB/s |  10 kB     00:00
Error:
 Problem 1: conflicting requests
  - nothing provides centos-gpg-keys = 1:8-3.el8 needed by centos-stream-repos-8-3.el8.noarch
 Problem 2: package centos-linux-release-8.3-1.2011.el8.noarch requires centos-repos(8), but none of the providers can be installed
  - conflicting requests
  - problem with installed package centos-linux-release-8.3-1.2011.el8.noarch
  - nothing provides centos-gpg-keys = 1:8-3.el8 needed by centos-stream-repos-8-3.el8.noarch
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

如果我给出的条件是我无法更改此容器的底层基础映像(CentOS 8),那么短期解决方案是什么?我知道长期解决方案是切换我的操作系统,但我需要坚持一小段时间。

先感谢您!

答案1

vault.centos.org 背后的基础设施很可能永远都是不稳定的。

RedHat 几乎没有动力支持它。它用于其主要操作系统的存档社区版本,该社区版本已因 CentOS Stream 而停产。

详细这里,您可能希望使用vault.epel.cloud更可靠的方法。

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

答案2

将您的容器从 CentOS 8 上移走,因为它已不再使用。不要使用 Vault。

有多种选择。通用基础映像 (UBI 8) 直接来自 Red Hat。基于 EL8 的容器来自重建,至少 Alma 和 Rocky 也有这些。

相关内容