(click image to enlarge)
Error from Yum : ‘Metadata file does not match checksum’
Circumstances: I run ‘yum repolist’ as root to update the repository package lists.
Running ‘yum clean all’ surprisingly does not fix the problem.
Explanation of the error: In order to verify that the files that yum downloads, yum sends along a file called ‘repomd.xml’ (which is stored in the directory /var/cache/yum/x86_64/6Server/ol6_latest or similar) The purpose of the repomd.xml is to provide checksums for the metadata that yum downloads.
My company uses an HTTP proxy for going out to the internet. This caches some files.
If the source yum file is updated and the repomd.xml file is cached on the HTTP proxy, I may end up downloading a new data file but checking it against the old checksum file.
Fix: Tell yum to never use cached data (at least temporarily) by editing /etc/yum.conf and adding a line ‘http_caching=none’. Then ‘yum clean metadata’ ‘yum repolist’.
As soon as you kick off the ‘yum repolist’ you can optionally comment out the http_caching line, which I recommend doing this as the cache will definitely speed up yum operations, since you now have the solution for the error if the problem occurs again.