Das Kommandozeilen-Installationstool zypper ist sehr mächtig. Jedoch hat es leider auch eine Schwäche. Es kann bei der Deinstallation eines Package nicht automatisch weitere verwaiste Packages deinstallieren. (Diese Funktionalität ist für die nächste openSUSE Version geplant)
Im Repo von Packman gibt es ein Tool namens rpmorphan. Dieses Tool spürt verwaiste Packages auf und bietet diese ggfs. zur Deinstallation an. Das Packman-Repo lässt sich leicht über die YaST2-Repoverwaltung hinzufügen. Eine Anleitung gibt es hier: http://de.opensuse.org/YaST/Software/Community_Repositories
Nachdem man Packman eingebunden hat, kann man rpmorphan über YaST2 oder per zypper in der Konsole installieren:
zypper in rpmorphan
Das Tool kann man im GUI-Modus wahlweise über den Menü-Eintrag oder in der Konsole starten (letzteres sollte man besser vorziehen):
rpmorphan -gui
Es lässt sich auch ohne GUI-Modus ausführen, in dem man den Schalter -gui weglässt.
rpmorphan ohne weitere Schalter (Voreinstellung: Libraries) listet alle verwaisten Library-Packages auf und man kann hier nochmal die einzelnen Packages durchgehen, die man löschen kann/will/möchte. Hier ist ein wenig Vorsicht geboten. Da die Auswahl auch Entwicklungspakete und Codecs betreffen, sollte man selber nochmal abwägen, ob das Package doch noch gebraucht wird.
Wir können aber auch unsere Auswahl der verwaisten Packages mit folgenden Schaltern beeinflussen:
-guess-perl berücksichtigt Perl-Module -guess-python berücksichtigt Python-Module -guess-pike berücksichtigt Pike-Module -guess-ruby berücksichtigt Ruby-Module -guess-common berücksichtigt gemeinsame Packages -guess-data berücksichtigt Packages, in der Daten für ein Package enthalten ist. -guess-doc berücksichtigt Packages, in der Dokumentationen vorkommen. -guess-dev berücksichtigt Development-Packages -guess-lib berücksichtigt Library-Packages (Voreinstellung) -guess-all berücksichtigt alle oben genannten Packages
z.B. mit folgendem Befehl können wir rpmorphan alle verwaisten Perl-, Python- und Ruby-Module auflisten lassen:
rpmorphan -guess-perl -guess-python -guess-ruby
Wenn man z.B. innerhalb der letzten 2 Tagen ein Package mit all seinen Abhängigkeiten installiert hat, kann man auch mit diesem Schalter -install-time das Zeitfenster definieren:
rpmorphan -guess-all -install-time 2
Auch die Auflistung in einem Zeitfenster, in dem auf eine Datei eines Packages nicht zugegriffen wurde, ist auch hier -access-time möglich. Jedoch muss man vorweg warnen, dass es je nach Anzahl der installierten Packages eine Menge Daten auswerten muss und dadurch eine Weile dauern kann. In diesem Beispiel ist der letzte Zugriff vor 30 Tagen:
rpmorphan -guess-all -access-time 30
Hat man einige Packages ausfindig gemacht, die man löschen will. Dann kann man dies mit zypper bequem ein oder mehrere Packages anhand der Package-Namen löschen:
zypper rm (package)
Welche Schalter es noch gibt, lässt sich wie folgt abrufen:
rpmorphan -help