While using yum/ CentOS5.4 at a client site, came across error on trying to search for a package. The error indicated a checksum mismatch like:
Loaded plugins: fastestmirror
openx-artifactory-released/primary | 1.1 MB 00:00
http://abcd.company.org:8081/artifactory/libs-release-local/repodata/primary.xml.gz: [Errno -1] Metadata file does not match checksum
Trying other mirror.
Error: failure: repodata/primary.xml.gz from openx-artifactory-released: [Errno 256] No more mirrors to try.
This happens when the repo metadata files are out of sync for some reason (including outdated cache) and one of the quick way to resolve is to force not checking the checksum with fastestmirror of yum which can take command line option of user confirmation input (y(es) or N(o)). So ran
> sudo yum -y remove yum-fastestmirror
If one doesn't check the dependency before removing a package one can get bitten. And that is what I ended up with :(.
Before running the above command I should have checked with
> yum deplist yum-fastestmirror
Excluding Packages from CentOS-5 - Plus
Finished
Finding dependencies:
package: yum-fastestmirror.noarch 1.1.16-14.el5.centos.1
dependency: config(yum-fastestmirror) = 1.1.16-14.el5.centos.1
provider: yum-fastestmirror.noarch 1.1.16-14.el5.centos.1
dependency: yum >= 3.0
provider: yum.noarch 3.2.22-20.el5.centos
provider: yum.noarch 3.2.22-20.el5.centos
package: yum-fastestmirror.noarch 1.1.16-13.el5.centos
dependency: config(yum-fastestmirror) = 1.1.16-13.el5.centos
provider: yum-fastestmirror.noarch 1.1.16-13.el5.centos
provider: yum-fastestmirror.noarch 1.1.16-13.el5.centos
dependency: yum >= 3.0
provider: yum.noarch 3.2.22-20.el5.centos
provider: yum.noarch 3.2.22-20.el5.centos
and also yum itself depends on yum-fastestmirror!
> yum deplist yum
...
dependency: yum-fastestmirror
provider: yum-fastestmirror.noarch 1.1.16-13.el5.centos
provider: yum-fastestmirror.noarch 1.1.16-13.el5.centos
provider: yum-fastestmirror.noarch 1.1.16-14.el5.centos.1
....
On removing yum-fastestmirror (to quickly avoid the metadata checksum error), I ended up with bigger problem of having uninstalled the yum itself!
> yum search python
-bash: yum: command not found
> rpm -qi yum
package yum is not installed
Now the only solution is to get the new package of yum for this CentOS and install new. I couldn't perform wget or http from behind the firewall and proxy due to security network on this system.
> cat /etc/redhat-release
OpenX release 5.4 (based on CentOS 5.4)
httped to http://vault.centos.org/5.4/os/i386/CentOS/ and download yum 3.2.22 (yum-3.2.22-20.el5.centos.noarch.rpm) and yum-fastestmirror & yum-utils to my local laptop. Then scped the packages to dev system
On the dev box, then, I ran
> sudo rpm -ivh yum-3.2.22-20.el5.centos.noarch.rpm yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
Note: You need to provide the both rpms at the same time (in single command) due to fact there is cyclic dependency. If you try installing one at a time each will complain that other package is missing!
Once that install was good, I could perform
> yum search ctags