5

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!

2 Answers2

7

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-*
Danila Vershinin
  • 4,738
  • 3
  • 16
  • 21
1

Move your containers off of a CentOS 8 since it is end of life. Do not use Vault.

Several options. Universal Base Image (UBI 8) direct from Red Hat. EL8 based containers from the rebuilds, at least Alma and Rocky have these as well.

John Mahowald
  • 30,009
  • 1
  • 17
  • 32
  • That's my medium/long term plan but it's not that straightforward as we are using a multistage build and one of the images further up in the stack is not ours and is based on CentOS 8. That image is very complicated and not easy for us to replicate, but that is what we'll be doing. – ground_beef_n_stuff Feb 18 '22 at 14:36
  • Vault is not necessary to accomplish a switch of distro, typically. Even with vault you are missing security updates, so staying on this distro has risks. – John Mahowald Feb 18 '22 at 19:10