Pixeldrama

Yum-Pakete auf CentOs aktualisieren hinter einem Web-Proxy

October 1, 2016

Kürzlich in das Problem gelaufen, dass ein RPM-Paket zwar im Yum-Repository lag, aber yum die neue Version nicht anzeigte. Interessanterweise half es auch nicht die Allzweckwaffe:

yum clean all
rm -rf /var/cache/yum/*

Nächster Schritt war das Repository direkt aufzulisten:

repoquery -q --repoid=<repository> -l <package>

Was folgenden Fehler zu Tage förderte:

    raise Errors.NoMoreMirrorsRepoError, errstr
yum.Errors.NoMoreMirrorsRepoError: failure: repodata/afefb75c411c9b8a59645667d53b754629027cb0da27eedf51f6f914919db0c4-filelists.sqlite.bz2 from <repository>: [Errno 256] No more mirrors to try.

Diese Datenbank-Datei wird in der Datei repomd.xml referenziert. Also habe ich die repomd.xml mit der aus dem Yum-Repository verglichen und diese waren tatsächlich unterschiedlich. Erschwerend kam noch hinzu, dass die repomd.xml im oben erwähnten und vorher gelöschtem Cache liegt. Die Frage war also, warum Yum eine veraltete reponmd.xml herunterlädt und woher.

Die Lösung war der Proxy-Server, der zwischen yum-Repository und dem Client hing. Aus irgendeinem tieferen Grund weigerte sich dieser also die neue repomd.xml auszuliefern. Abhilfe schuf die http_caching auf ´packages´ in der yum.conf zu setzen. Danach war nach ´yum update´ auch die neueste Version des Packages zu sehen.

Resourcen