Aus Mageia wiki
Wechseln zu: Navigation, Suche
Warnung.png
Warnung!

Das Wiki ist umgezogen und befindet sich nun unter https://wiki.mageia.org/en/Hauptseite-de . Bitte nutzen Sie das neue Wiki.

Die hier enthaltenen Informationen werden nicht aktualisiert und sind deshalb veraltet oder sogar falsch!
Diese Seite befindet sich im neuen Wiki hier: https://wiki.mageia.org/en/Pakete_entfernen-de


Drakconf multiflag.png
Weitere Sprachen

Deutsch ; English ; Français ;


Entnommen aus dem Forenthread

Wenn ich ein Paket entferne, werden dann auch die Abhängigkeiten entfernt?

Wenn ich ein Paket mit "urpmi <paketname>" installiere und dieses zum Beispiel 9 zugehörige Abhängigkeiten installiert, insgesamt somit 10 Pakete, und ich das Paket mit dem "urpme" Befehl entferne, werden dann alle 10 Pakete entfernt?

Falls nicht, welches ist der beste Befehl um alle 10 Pakete zu entfernen?

Antwort

Nein. Es wird nur das Paket entfernt, welches installiert werden sollte, jedoch nicht die dazugehörigen Abhängigkeiten. Hierfür ist der Befehl urpme --auto-orphans gedacht und er funktioniert gewöhnlich wie es geplant ist, falls Sie wissen wie dieser funktioniert, da es hierbei einige Mechaniken gibt, die Sie wissen sollten und Ihre Aufmerksamkeit benötigen, damit dies genau so funktioniert, wie gewünscht.

Ein kleines Beispiel: Sie haben ein sauberes System am Anfang, bei dem urpme --auto-orphans keine orphans - verwaiste Pakete - anzeigt. Alle aktuell installierte Pakete wurden von Ihnen zur Installation ausgewählt. Wenn Sie nun foo installieren, werden auch die Pakete bar und baz angefordert und installiert.

Die orphans Funktion markiert nun bar und baz als Pakete, welche nicht explizit angefordert wurden und fügt diese in /var/lib/rpm/installed-through-deps.list ein. Einige Zeit später möchten Sie nun foo entfernen, jedoch bleibt bar und baz weiterhin als Paket installiert, da diese möglicherweise weiterhin verwendet werden oder gemeinsam genutzte Bibliotheken verwendet, auf die andere Programme zugreifen. Nun können Sie diese beiden Pakete über den Befehl urpme --auto-orphans entfernen.

Sie können die Pakte manuell als "un-orphaned" (nicht-verwaist) markieren (zum Beispiel aus der /var/lib/rpm/installed-through-deps.list entfernen), indem Sie urpmi mitteilen, dass Sie das Paket installieren möchten. Dies führt keine Änderungen an Ihrer Installation aus, sondern entfernt das Paket aus der Liste der verwaisten Pakete (orphan Liste), da Sie urpmi mitteilen, dass Sie es direkt installieren möchten.

Dies ist der Idealfall. Führe einfach urpme --auto-orphans aus (aber bestätigen Sie dies NICHT mit ja, zum entfernen der Pakete!!!), um anzuzeigen, wie viele "orphans" Sie aktuell haben. Falls Sie diese behalten möchten, verwende einfach urpmi bei alle dort gelisteten Pakete ... Damit funktioniert es wie gewünscht und wie beschrieben.

Die einzige andere Möglichkeit ist es grep -F [RPM] /var/log/syslog zu verwenden, oder, seit Mageia 3, journalctl -a | grep -F [RPM] und nachzusehen, welche Pakete zusätzlich mit dem Paket installiert wurden, welches Sie entfernen möchten, um diese manuell zu entfernen, jedoch ist dies Bastelarbeit ...

Warnung

Es gibt gute Gründe vorsichtig mit urpme --auto-orphans zu sein.

Es ist SEHR einfach, unbeabsichtigt wichtige Pakete damit zu entfernen.

Betrachten Sie dieses Beispiel. Sie haben das Metapaket task-kde4 (nun task-plasma installiert. Ein Metapaket ist ein leeres Paket welches keine Dateien enthält, jedoch viele weitere Pakete als Abhängigkeiten. task-kde4 hat 100erte von Pakete als Abhängigkeit.

Nun entfernen Sie nur eines dieser Pakete, da Sie dieses nicht mehr möchten. Nehmen wir als Beispiel den Dokumentenbetrachter okular. Das entfernen von okular bedeutet, dass eines der Abhängigkeiten von task-kde4 fehlt und dass das meta-Paket task-kde4 auch entfernt wird. Dies ist in Ordnung, da alle andere Pakete, welche als Teil von task-kde4 installiert wurden, weiterhin vorhanden sind, nur das diese als orphans markiert sind. Wenn Sie nun urpme --auto-orphans ausführen, werden Ihnen die 100erte Pakete als orphaned Pakete angezeigt und ein Druck auf Ihre Tastatur wird die komplette KDE Installation löschen.

Viele Anfänger haben hierdurch ihre Installation ernsthaft beschädigt, da diese keine Aufmerksamkeit dem aufpoppenden Fenster über das entfernen von orphans geschenkt haben, welches rpmdrake nach dem entfernen eines Pakets anzeigt. Ich würde mir wünschen dass die Existenz von urpme --auto-orphans in rpmdrake versteckt wird.

Werkzeuge um Orphans (verwaiste Pakete) zu verwalten

Seit einiger Zeit gibt es ein Werkzeug um verwaiste Pakete zu verwalten. Es erlaubt den Benutzern einzelne Teile aus der orphans Liste zum entfernen auszuwählen und einzelne Teile als un-orphaned (nicht-verwaist) auszuwählen (das gleiche passiert auch, wenn Sie urpmi mit dem Namen eines installierten Pakets verwenden - es wird als manuell installiert markiert, somit als nicht-verwaist).

Das Werkzeug wurde von damalige Mitglieder der mandrivauser.de Community erstellt - nun stolze Mageianer :) Es wird qt4urpm genannt und ist in den core_release Repositorys vorhanden. Die Projektseite kann unter http://sourceforge.net/projects/qt4urpm/ gefunden werden.

Alle verwaiste (orphans) Pakete als nicht-verwaist (un-orphaned) markieren

Um alle verwaiste Pakete als manuell installierte Pakte zu markieren, können Sie folgendes ausführen

 urpmi $(urpmq --auto-orphans -f)

Zusätzliche Bemerkungen über Orphans

Das verwalten von Orphans hat in den meisten Fällen eher eine technische Bedeutung, statt einer praktischen. Diese Art der Vorgehensweise benötigen Sie möglicherweise, wenn Sie viele und verschiedene Software ausprobieren möchten und einen begrenzten Speicherplatz haben.

Zugehörige Fehlerberichte

Weitere Methoden um RPMs zu entfernen

Neben den orphans gibt es zusätzliche Methoden um Ihr System zu bereinigen.

Entfernen der größten Pakete

Der folgende Befehl listet die 10 größten Pakete auf, die in Ihrem System installiert sind. Falls eines dieser Pakete für Sie nicht mehr nützlich ist, dann können Sie urpme verwenden um dieses zu entfernen und optional, auch die verwaisten Pakete zu entfernen (siehe oben)

 rpm -qa --qf '%{SIZE} %{NAME}\n' | sort -nr | head -n 10

Entfernen von Paketen, welche nicht in Ihren Repositorys vorhanden sind

Falls Sie Ihr System (eventuell mehrmals) aktualisiert haben oder manuell einige Pakete installiert haben, sind womöglich auch ein paar Pakete vorhanden, die Sie entfernen möchten. Der unten aufgeführte Befehl wird alle Pakete auflisten, welche nicht in den "Core_Release" Repositorys vorhanden sind (es muss das Update Repository nicht speziell ausgewählt werden: alle Pakete in "Updates" befinden sich auch in "Release") :

 rpm -qa | xargs urpmq --media "Core Release","Core 32bit Release" -r

Fühl dich frei, die Repositorys in einem mit kommagetrennten Format aufzulisten.


Um einfach alle Pakete aufzulisten, welche sich nicht in einer der aktuell eingerichteten Repositorys befinden, verwende den Befehl

 urpmq --not-available