Linux/Ubuntu: Alte Pakete entfernen

In Ubuntu-Systemen, die über mehrere Versionen aktualisiert wurden oder die viele Extra-Repositories verwenden, kann es vorkommen, dass veraltete Pakete Probleme bei der Installation von Software oder bei der Aktualisierung bereiten.

Oft hilft es, die veralteten Pakete komplett zu deinstallieren. Dabei kann es jedoch vorkommen, dass sich Pakete der Deinstallation verweigern.

Ein Problem kann sein, dass “apt-get” behauptet, das Paket ist gar nicht installiert. Ein Blick in die Paketdatenbank zeigt es jedoch noch an. Von solchen Paketen sind häufig noch Konfigurationsdateien vorhanden. Solche Pakete lassen sich wie folgt auflisten:

$ dpkg -l|grep -v ^ii
[...]
rc  xserver-xorg-video-via  1:0.2.2-5  X.Org X server -- VIA display driver
rc  xulrunner-1.9.1  1.9.1.9+nobinonly-0ubuntu0.9.10.1  XUL + XPCOM application runner

Dass tatsächlich noch Dateien zum Paket xulrunner-1.9.1 gehören, kann man wie folgt sehen:

$ dpkg -L xulrunner-1.9.1
/etc
/etc/gre.d
/etc/gre.d/1.9.1.9.system.conf
/etc/xulrunner-1.9.1
/etc/xulrunner-1.9.1/system-greprefs.js
/etc/gre.d/1.9.1.9pre.system.conf

Der naheliegende Versuch, das Paket mit “apt-get remove” oder “apt-get purge” zu löschen, schlägt fehl. Man kann das Paket aber mit “dpkg –purge” löschen:

$ sudo apt-get remove xulrunner-1.9.1
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Status-Informationen einlesen... Fertig
Paket xulrunner-1.9.1 ist nicht installiert, wird also auch nicht entfernt.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 14 nicht aktualisiert.
$ sudo apt-get purge xulrunner-1.9.1
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Status-Informationen einlesen... Fertig
Paket xulrunner-1.9.1 ist nicht installiert, wird also auch nicht entfernt.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 14 nicht aktualisiert.
$ sudo dpkg --purge xulrunner-1.9.1
(Lese Datenbank ... 207565 Dateien und Verzeichnisse sind derzeit installiert.)
Entferne xulrunner-1.9.1 ...
Lösche Konfigurationsdateien von xulrunner-1.9.1 ...

Ein anderes Problem können Abhängigkeitskonflike sein. Generell sollte man vorsichtig sein, denn Abhängigkeiten haben schon ihren Zweck. Wenn man aber umbedingt ein bestimmtes Paket loswerden muss, zumindest temporär, hilft auch hier “dpkg”. Man kann “dpkg” zwingen trotz Abhängigkeitsproblemen oder anderen Problemen ein Paket zu deinstallieren. Die Hilfe dazu erhält man wie folgt:

$ dpkg --force-help
dpkg-Optionen zum Erzwingen - Verhalten steuern, wenn Probleme gefunden werden:
  Warnen aber fortsetzen: --force-,,...
  Mit Fehler anhalten:    --refuse-,,... | --no-force-,...
 Dinge erzwingen:
  all [!]                Alle Optionen zum Erzwingen setzen
[...]
  depends-version [!]    Versionsabhängigkeitsprobleme in Warnungen umwandeln
  depends [!]            Alle Abhängigkeitsprobleme in Warnungen umwandeln

Im folgenden Beispiel wird das Paket “yelp” deinstalliert (und anschließend wieder installiert), obwohl die Deinstallation Abhängigkeitskonflikte anzeigt.

$ sudo dpkg --purge yelp
dpkg: Abhängigkeitsprobleme verhindern Entfernen von yelp:
 gnome-user-guide hängt ab von yelp; aber:
  Paket yelp soll entfernt werden.
dpkg: Fehler beim Bearbeiten von yelp (--purge):
 Abhängigkeitsprobleme - entferne nicht
Fehler traten auf beim Bearbeiten von:
 yelp
$ sudo dpkg --purge --force-all yelp
dpkg: yelp: Abhängigkeitsprobleme, aber entferne es auf Anfrage dennoch:
 gnome-user-guide hängt ab von yelp; aber:
  Paket yelp soll entfernt werden.
(Lese Datenbank ... 207516 Dateien und Verzeichnisse sind derzeit installiert.)
Entferne yelp ...
Lösche Konfigurationsdateien von yelp ...
Verarbeite Trigger für man-db ...
Verarbeite Trigger für hicolor-icon-theme ...
$ sudo apt-get install yelp
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Status-Informationen einlesen... Fertig
Die folgenden NEUEN Pakete werden installiert:
  yelp
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 14 nicht aktualisiert.
Es müssen noch 0B von 428kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 5.399kB Plattenplatz zusätzlich benutzt.
Wähle vormals abgewähltes Paket yelp.
(Lese Datenbank ... 207467 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacke yelp (aus .../yelp_2.30.0-0ubuntu2_i386.deb) ...
Verarbeite Trigger für hicolor-icon-theme ...
Verarbeite Trigger für man-db ...
Richte yelp ein (2.30.0-0ubuntu2) ...