Centos – Failing to run yum update in CentOS 8

centoscentos8yum

I want to preface this post with this disclaimer: I am somewhat unfamiliar with how yum functions and I am also unfamiliar with the details of the changes that are required since CentOS 8 became EOL.

About a month back, my container build was unable to successfully run because when I would yum update, I got an error. I found the solution here and added this to my container build:

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-*

This got me by for awhile, until today and it seemed to break again.

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]

So I have found some other solutions, but none of them have worked. For example, I found this post: CentOS 8 upgade – How to resolve Warning: failed loading '/etc/yum.repos.d/CentOS-AppStream.repo', skipping

It had me to the following:

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

dnf distro-sync

But with that, I get this:

    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)

If I am giving the condition that I am unable to change my underlying base image for this container (CentOS 8), what is a short term solution for this? I know the long-term solution is to switch my OS, but I need to limp along for a short amount of time.

Thank you in advance!

Best Answer

The infra that is behind vault.centos.org will likely always going to be flaky.

RedHat has very little motivation to support it. It is for archived community version of their primary OS, the very same community version that was made EOL in favor of CentOS Stream.

As detailed here, you may want to use vault.epel.cloud which is more reliable.

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