Thursday, November 18, 2021

[SOLVED] centos yum fails installing anything or updating system

Issue

I am trying to install a package on CentOS, but it throws error when I run the "yum" command. The internet connection is working fine. I try to yum clean all but problem persist.

Error:

[root@dcos-master3 ~]# yum install ntp

Loaded plugins: fastestmirror


     One of the configured repositories failed (Unknown),
     and yum doesn't have enough cached data to continue. At this point the only
     safe thing yum can do is fail. There are a few ways to work "fix" this:

         1. Contact the upstream for the repository and get them to fix the problem.

         2. Reconfigure the baseurl/etc. for the repository, to point to a working
            upstream. This is most often useful if you are using a newer
            distribution release than is supported by the repository (and the
            packages for the previous distribution release still work).

         3. Run the command with the repository temporarily disabled
                yum --disablerepo=<repoid> ...

         4. Disable the repository permanently, so yum won't use it by default. Yum
            will then just ignore the repository until you permanently enable it
            again or use --enablerepo for temporary usage:

                yum-config-manager --disable <repoid>
            or
                subscription-manager repos --disable=<repoid>

         5. Configure the failing repository to be skipped, if it is unavailable.
            Note that yum will try to contact the repo. when it runs most commands,
            so will have to try and fail each time (and thus. yum will be be much
            slower). If it is a very temporary problem though, this is often a nice
            compromise:

                yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

    Cannot find a valid baseurl for repo: base/$releasever/x86_64

My yum repolist is the next:

[root@dcos-master3 ~]# yum repolist list
Loaded plugins: fastestmirror
https://yum.dockerproject.org/repo/main/centos/%24releasever/repodata/repomd.xml: [Errno 14] HTTPS Error 403 - Forbidden
Trying other mirror.
To address this issue please refer to the below knowledge base article

https://access.redhat.com/solutions/69319

If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/

repolist: 0

If I list the repolist:

[root@dcos-master3 ~]# yum repolist
Loaded plugins: fastestmirror
https://yum.dockerproject.org/repo/main/centos/%24releasever/repodata/repomd.xml: [Errno 14] HTTPS Error 403 - Forbidden
Trying other mirror.
To address this issue please refer to the below knowledge base article

https://access.redhat.com/solutions/69319

If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/

repo id                             repo name                             status
base/$releasever/x86_64             CentOS-$releasever - Base             0
dockerrepo/$releasever              Docker Repository                     0
extras/$releasever/x86_64           CentOS-$releasever - Extras           0
updates/$releasever/x86_64          CentOS-$releasever - Updates          0
repolist: 0

Solution

BEFORE TRYING ANY OF THIS, HAVE A BACKUP OF YOUR MACHINE, YOU COULD DAMAGE YOUR OS MORE/COMPLETELY

It seems that your yum variable $releasever is somehow corrupt, it usually is caused by missing centos-release package on the machine for some obscure reasons.

You can check if you have the package by:

    rpm -qi centos-release

You will probably see:

    "package centos-release is not installed"

First find out the exact centos version that you have by executing as root:

    cat /etc/redhat-release

You will see something like this:

    CentOS Linux release 7.3.1611 (Core)

You can fetch the centos-release package from repo by:

    wget http://vault.centos.org/centos/7.3.1611/updates/x86_64/Packages/centos-release-7-3.1611.el7.centos.2.5.x86_64.rpm

Now run reinstall centos-release package via rpm:

    sudo rpm -Uvh --replacepkgs centos-release-7-3.1611.el7.centos.2.5.x86_64.rpm

As next you can try to install something with yum and you might get:

    [root@dcos-master3 ikerlan]# sudo yum install wget
    error: db5 error(-30969) from dbenv->open: BDB0091 DB_VERSION_MISMATCH: Database environment version mismatch
    error: cannot open Packages index using db5 - (-30969)
    error: cannot open Packages database in /var/lib/rpm
    CRITICAL:yum.main:

    Error: rpmdb open failed

Now you can try to reboot the machine or try to use the following command to rebuild the rpm db:

    rpm --rebuilddb


Answered By - michalh