Unterschied zwischen clean und remove bei apt

Dennis Roch ubuntu at segmentation-fault.de
Fre Apr 10 18:47:09 BST 2009


Hallo Taner,

> Sind es nur zwischengespeicherte Dateien (.deb Endungen) die gelöscht
> werden mit clean?

Ja, die installierte Software wird nicht entfernt (dafür gibt es ja
»remove«).
Und »clean« entfernt alle solchen Paketdateien, »autoclean« nur die, die
ohnehin nicht mehr verfügbar sind (und demnach wahrscheinlich
veraltet/nicht mehr benötigt).


> Installiere ich aus der Paketverwaltung ein Paket/Programm, welches beim
> installieren jedoch 2-3 andere Pakete/Libraries benötigt.
> Deinstalliere ich nun das Programm zu einem späteren Zeitpunkt, ohne die
> 2-3 anderen Pakete zu löschen.

> Will ich nun die 2-3 Pakete, die nur "leer im Raum" dastehen löschen,
> greift der Befehl "remove".

Also, »remove« dient dem Deinstallieren von Paketen:
sudo aptitude remove <Paketname>
(oder genauso mit apt-get)

Ursprünglich hat das nur das benannte Paket deinstalliert und nicht
weiter die Abhängigkeiten geprüft. Man konnte dann mit »autoremove« nach
verwaisten Paketen suchen (also welche, die als Abhängigkeit installiert
wurden, aber nicht mehr benötigt werden) und deinstallieren.

Inzwischen machen aber anscheinend sowohl aptitude als auch apt-get das
beim »remove« gleich mit, entsprechend gibt es kein Kommando
»autoremove« mehr.


> Es gibt ja noch Programme, die man selebr kompiliert und installiert.
> Aber auf dies möchte ich nicht eingehen, da ich es eh vermeide, auf
> diesem Weg ein Programm zu installieren :-)

Ja, man sollte den Weg über den Paketmanager bevorzugen. Das
Deinstallieren von anderweitig installierter Software ist nämlich nicht
immer so einfach. Außerdem hat der Paketmanager keine Möglichkeit diese
bei der Berechnung von Abhängigkeiten zu berücksichtigen.

Das wird dir dann auch bei der Zusammenfassung der nötigen Änderungen
angezeigt, bevor die Frage kommt, ob du das machen möchtest.

Bei aptitude kann das zum Beispiel so aussehen:

aptitude -s remove inkscape
---------------------------------------
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Lese Status-Informationen ein... Fertig
Lese erweiterte Statusinformationen
Initialisiere Paketstatus... Fertig
Die folgenden Pakete werden ENTFERNT:
  inkscape libmagick++10{u} libwmf-bin{u} perlmagick{u} python-lxml{u}
  python-uniconvertor{u}
0 Pakete aktualisiert, 0 zusätzlich installiert, 6 werden entfernt und 0
nicht aktualisiert.
Muss 0B an Archiven herunterladen. Nach dem Entpacken werden 69,7MB frei
werden.
Wollen Sie fortsetzen? [Y/n/?]
Würde Pakete herunterladen/installieren/entfernen.
---------------------------------------

Das -s bewirkt, dass keine Änderung tatsächlich vorgenommen wird
(Simulation).

Wie du siehst, würden neben dem zu entfernenden Paket »inkscape« auch
noch einige andere entfernt, nämlich weil sie genau nur als Abhängigkeit
für inkscape installiert wurden.

Diese sind auch noch mal mit einem »{u}« gekennzeichnet. Warum das aber
ein u ist, habe ich auf die Schnelle nicht herausgefunden. Weiß das
vielleicht jemand hier auf der Liste?

Die Manpage sagt dazu leider gar nichts. Auch nicht zu den anderen
Markierungen wie »{a}«, wenn Pakete als Abhängigkeit installiert werden.
Wäre mal interessant.

Viele Grüße
Dennis