Alte Einträge in der RPM-Datenbank
Beim Aktualisieren von Systemen mit Fedora Core oder CentOS habe ich gelegentlich yum durch einen unbeabsichtigten Neustart beim Einspielen neuer RPM-Pakete unterbrochen. Obwohl sich in den RPM-Depots nichts verändert hat, meckerte das Tool beim nächsten Update-Versuch plötzlich über nicht auflösbare RPM-Abhängigkeiten - wie kann ich die beheben?
- Thorsten Leemhuis
Beim Aktualisieren von Systemen mit Fedora Core oder CentOS habe ich gelegentlich yum durch einen unbeabsichtigten Neustart beim Einspielen neuer RPM-Pakete unterbrochen. Obwohl sich in den RPM-Depots nichts verändert hat, meckerte das Tool beim nächsten Update-Versuch plötzlich über nicht auflösbare RPM-Abhängigkeiten - wie kann ich die beheben?
Wenn yum seine Arbeit nicht vollendet, bleiben unter Umständen in der RPM-Datenbank die Einträge für die alten Versionen der bis zur Unterbrechung aktualisierten Programme vorhanden - parallel zu den neuen Einträgen. Das nächste Update des Programms sollte das normalerweise beseitigen. Doch die zurückgebliebenen Einträge können RPM beim Auflösen der Paket-Abhängigkeiten durcheinanderbringen, sodass yum erst gar nicht dazu kommt.
Das schuldige Paket gibt yum meist in der Fehlermeldung mit an. Über eine Abfrage der RPM-Datenbank lässt sich der Verdacht bestätigen und das Problem durch Deinstallieren der alten Version beseitigen:
# rpm -q wget
wget-1.9.1-22
wget-1.10.2-3.2.1
# rpm -e wget-1.9.1-22
#
Alle mehrfach in der RPM-Datenbank eingetragenen Programme kann ein Befehl wie
# rpm -qa --qf '%{NAME}.%{ARCH}\n' | sort | uniq -d
anzeigen - bei Kernel-Paketen sind mehrere Einträge jedoch normal. Komfortabler gelingt das Aufstöbern von doppelt gelisteten Paketen mit dem zum Paket yum-utils gehörenden Programm package-cleanup, das man dazu mit der Option „-d“ (oder „--dupes“) aufruft. Um das Entfernen des jeweils älteren Paketes muss man sich jedoch manuell kümmern. (thl)