Centos

在 CentOS 8 中無法執行 yum 更新

  • February 17, 2022

我想在這篇文章的開頭加上以下免責聲明:我對 yum 的功能有些陌生,而且我也不熟悉自 CentOS 8 成為 EOL 以來所需更改的細節。

大約一個月前,我的容器建構無法成功執行,因為當我進行 yum 更新時,我得到了一個錯誤。我在這裡找到了解決方案並將其添加到我的容器建構中:

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 upgade - How to resolve Warning: failed loading ‘/etc/yum.repos.d/CentOS-AppStream.repo’, skipping

它讓我做到了以下幾點:

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)的基礎基礎映像,那麼短期解決方案是什麼?我知道長期的解決方案是切換我的作業系統,但我需要在短時間內跛行。

先感謝您!

vault.centos.org 背後的基礎設施很可能總是不穩定。

RedHat 幾乎沒有動力支持它。它適用於他們主要作業系統的存檔社區版本,與 CentOS Stream 的 EOL 相同的社區版本。

如此處詳述,您可能希望使用vault.epel.cloud哪個更可靠。

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

將您的容器從 CentOS 8 中移出,因為它已報廢。不要使用保險櫃。

幾個選項。直接來自 Red Hat 的通用基礎映像 (UBI 8)。重建後的基於 EL8 的容器,至少 Alma 和 Rocky 也有這些。

引用自:https://serverfault.com/questions/1093922