From Mageia wiki
Jump to: navigation, search


Drakconf multiflag.png
Andere Sprachen
Deutsch ; English ; Español ; Français ;
Einleitung:
Nach vielen Diskussionen über den urpme --auto-orphans Befehl, finden Sie nun hier eine Seite aus diesem [Foren-Thread] .

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 spezifische Paket bzw. die spezifischen Pakete entfernt, welche Sie zum deinstallieren ausgewählt haben, 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.

Dragon-head.png Hier sind Drachen!
URPMI und DNF verwenden verschiedene Methoden, um verwaiste Pakete zu finden.

Falls Sie beide verwenden, sollten Sie niemals die automatische Funktion beider Befehle nutzen.

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 Pakete 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ühren Sie einfach urpme --auto-orphans aus (aber bestätigen Sie dies NICHT mit ja, zum entfernen der Pakete!!!), um anzeigen zu lassen, wie viele "orphans" Sie aktuell haben. Falls Sie diese behalten möchten, welche Sie sehen, verwenden Sie einfach urpmi ... Damit funktioniert es wie gewünscht und wie oben beschrieben.

Eine weitere 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 ermüdend ...

Entfernen mit allen Abhängigkeiten

Beispiel: urpme --auto-orphans task-x11 wird x11 mitsamt der Abhängigkeiten deinstlalieren.

Referenz: * https://bugs.mageia.org/show_bug.cgi?id=3163#c7 - urpmi entfernt einfach das meta-Paket samt dessen Abhängigkeiten, ähnlich zur purge Option von apt.

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 Meta-Paket task-plasma installiert. Ein Metapaket ist ein leeres Paket welches keine Dateien enthält, jedoch viele weitere Pakete als Abhängigkeiten. task-plasma5 hat hunderte 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-plasma5 fehlt und dass das meta-Paket task-plasma5 auch entfernt wird. Dies ist in Ordnung, da alle andere Pakete, welche als Teil von task-plasma5 installiert wurden, weiterhin vorhanden sind, nur das diese als orphans markiert sind. Wenn Sie nun urpme --auto-orphans ausführen, werden Ihnen die hunderte Pakete als orphaned Pakete angezeigt und ein Druck auf Ihrer Tastatur wird die komplette Plasma Installation löschen.

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

Späteres Mageia 8 und in Cauldron/mga9

(entfernen, wenn behoben)

  • mga#31382, mga#31699#c28 (In diesem Kommentar befindet sich ein Beispiel und Verlinkungen zu ähnlichen Fehlerberichte) - urpmi --auto-orphans entfernt möglicherweise zu viel!

Zu erwägen

  • mga#3947 - orphans detection should record requested files, not installed through deps
  • mga#8123 - Add "orphaned" as selective view to rpmdrake

Weitere Methoden um RPMs zu entfernen

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

Alte Kernel entfernen

Sie sollten den aktuell verwendeten Kernel und einen oder zwei ältere als Fallback behalten. In den meisten Fällen können Sie ältere Kernel und andere Kernelvarianten entfernen.

Von Mageia 9 an werden alte Kernel als Voreinstellungen automatisch durch remove-old-kernels entfernt und die Einstellungen können dort angepasst und die Ausführung auch manuell durchgeführt werden.

Es arbeitet im Hintergrund ohne ein Eingreifen des Anwenders und behält automatisch die drei am neusten installierten Kernel. Dies behebt ein Problem, welches bei Systemen mit eingeschränktem Speicherplatz passieren kann, indem durch viele Kernel-Aktualisierungen kein Speicherplatz mehr zur Verfügung stand. Es kann, wie in den Voreinstellungen, wöchentlich automatisch ausgeführt werden, sowie auch eingerichtet werden, dass es manuell über die Befehlszeile ausgeführt wird. Starten Sie die Anwendung mit der Option -h um die Hilfe anzeigen zu lassen. Es ist auch über das Hauptmenü von Mageia unter Werkzeuge -> Systemwerkzeuge erreichbar. Dort gibt es auch eine manpage, welche eine detailierte Anleitung für fortgeschrittene Anwender bietet.

Falls Sie von Mageia 8 aus aktualisiert haben, dann müssen Sie remove-old-kernels manuell nachinstallieren.

Siehe auch im Forum. Für Scripts können Sie zum Beispiel unter Kommentar 29 oder später in mga#24403.

Entfernen von nicht benötigten Lokalisierungen und Hardware-Unterstützung

Unser Werkzeug remove-unused-packages ist welches, dass wir auch für den Live-Installer ausführen.

Auf einem installierten System können Sie es manuell in einem Terminal als root ausführen. Verwenden Sie su - um root zu werden. Verwenden Sie niemals nur su ohne den Stich! oder konfigurieren und verwenden Sie sudo.

Falls nichts zum deinstallieren gefunden wird, wird es ohne eine Meldung beendet werden. Falls es keine nicht benötigte Lokalisierungen findet, wird es die Auswahl nicht anzeigen, genauo auch bei den Treibern.

Um zu sehen, was deinstalliert wird, klicken Sie auf die Fortgeschritten Schaltfläche. Für jede Lokalisierung werden die entsprechenden Übersetzungen entfernt. Falls Sie finden, dass es zu viel ist: brechen Sie entweder den Vorgang ab oder fahren Sie fort und instaliieren Sie die benötigten Pakete danach erneut. Beispiel: Persönlich installiere ich erneut, was ich benötige: urpmi locales-en autocorr-en hunspell-en hyphen-en mythes-en erneut - Dies macht die englischsprachige Rechtschreibprüfung einfacher, wenn man damit schreibt... ;)

Persistenter Live-USB

Vor allem bei einem Live USB-Stick mit einer persistenten Partition, und auch bei einer konventionell erstellen Installation auf einem USB-Stick, ist es gut, nicht benötigte Pakete zu entfernen, um Speicherplatz auf der persistenten Partition, sowie Zeit und Bandbreite zu sparen.

(Technisch präziser: Pakete werden nicht von der, als "nur-lesen" eingebunden, Live-ISO Partition entfernt, die sich als Abbild auf dem USB-Stick befindet - jedoch wird es für das Paketsystem aussehen, als wären die Pakete aus dem System entfernt worden, wodurch keine Aktualisierungen abgefragt werden, welche auf der persitenten Partition gespreichert worden wären.)

Entfernen Sie deshalb bei einem gebooteten persistenten Live-USB System, bevor Sie dieses aktualisieren, die nicht benötigten Lokalisierungen wie folgt: Öffnen Sie ein Terminal, wechseln Sie auf root durch die Eingabe von su - (der Strich ist wichtig!) und führen Sie anschließend remove-unused-packages aus. Sie werden ein Auswahlfenster sehen. Typischerweiße wählen Sie die Entfernung der Hardwareunterstützung ab (damit der Stick auf den meisten Computer funktioniert) und klicken anschließend auf OK.

Entfernen der größten Pakete

Der folgende Befehl listet die 20 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 20

Eine erweiterte Ausgabe: nummeriert, Größe in MB, anzeigen der Versionen:

$ rpm -qa --queryformat '%{size} %{name}-%{version}-%{release}\n' | sort -k 1,1 -rn | numfmt --field 1 --to=iec | nl | head -20

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" - nur in einer anderen Version) :

$ 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

Prüfen anhand des Veröffentlichung-Suffix

Listet alle Pakete auf, welche nicht ".mga8" enthalten:

$ rpm -qa | grep -v .mga8

Listet alle Pakete von vorherigen Veröffentlichungen auf - im Beispiel, von Mageia 7:

$ rpm -qa | grep .mga7

Für eine grafische Oberfläche Mageia Kontrollzentrum, Auswahl Software verwalten -> Installieren & Entfernen von Software . Wählen Sie im ersten Drop-Down Menü "All", im zweiten "Installiert" und klicken Sie im "Finden" Feld auf das Lupen Symbol und wählen Sie dort "in Namen" und geben Sie dann "mga7" (ohne Anführungszeichen" an.

Durch das Entfernen von Paketen aus älteren Mageia Versionen werden möglicherweise auch Anwendungen der aktuellen Mageia Veröffentlichung entfernt - dies passierte beispielsweise bei FileZilla und VLC. Installieren Sie diese Anwendungen einfach danach erneut.

Einige Pakete lassen sich möglicherweise nicht deinstallieren, darunter Boomaga in mga#28419. Versuchen Sie in diesem Fall dann, als root, den Befehl rpm -e --noscripts boomaga-3.0.0-1.mga7.

Sie benötigen womöglich einige Pakete

Sie haben eventuell ein paar Pakete installiert, die Sie nicht deinstallieren möchten, dies jedoch nicht sofort bemerken, Beispielsweise:

  • Treiber für Drucker von einem Hersteller - hier bestehen möglicherweise mehrere Pakete
  • Einige Anwendungen die Sie als rpm aus anderen Quellen installiert haben
  • Anwendungen, die Sie lokal kompiliert und paketiert haben
  • Anwendungen, die von vorherigen Mageia Veröffentlichungen behalten haben, und nicht in der aktuellen Mageia Veröffentlichung verfügbar sind
  • Pakete von vorherigen Mageia Veröffentlichungen, welche aufgrund einigen oben genannten Gründe, benötigt werden
  • ...

Behalten Sie im Hinterkopf,

  • es tut sehr selten weh, unnötige Pakete zu behalten
  • falls Sie aus versehen (oder zum Überprüfen) Pakete entfernt haben - wenn Sie diese greifbar haben, können Sie diese erneut installieren.