GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Ubuntu – Warum hat „apt-get Autoremove“ nicht richtig funktioniert?

Ich habe Pipelight gemäß dieser Anleitung aus dem PPA-Archiv installiert.

Der Installationsbefehl sudo apt-get install --install-recommends pipelight-multi war nur für ein Paket, aber es erforderte das Herunterladen und Installieren von etwa 180 Abhängigkeitspaketen, von denen etwa 40 Upgrades auf derzeit installierte Pakete waren.

Daher wurden etwa 140 neue Pakete installiert.

Pipelight hat danach nicht funktioniert, also habe ich es entfernt:

sudo apt-get purge pipelight-multi

Es wurden keine anderen Pakete entfernt.

Ich habe dann sudo apt-get autoremove verwendet . Dieser Befehl entfernt alle automatisch entfernbaren Pakete. Es gab genau 100 davon (es gab auch genau 100 Pakete in der „Autoremovable“-Liste von Synaptic Package Manager).

So blieben etwa 40 Pakete übrig, die nicht als automatisch entfernbar galten und daher nicht entfernt wurden. Ich musste sie manuell entfernen.

Es gab keine unerfüllten Abhängigkeiten auf meinem System, bevor ich Pipelight installiert habe; und ich hatte keine Pakete als manuell installiert, installiert oder entfernt oder irgendetwas anderes markiert. Zwischen der Installation und dem Entfernen von Pipelight vergingen nur etwa zehn Minuten.

Warum wurden nach dem Entfernen von Pipelight nicht alle unnötigen Abhängigkeiten als automatisch entfernbar markiert?

Akzeptierte Antwort:

Meine beste Vermutung ist, dass die 40 Pakete von anderen Paketen empfohlen wurden, die Sie bereits installiert hatten; pipelight-multi zusammen mit --install-recommends Option bewirkte, dass sie installiert wurden, aber sie wurden aufgrund dieser Empfehlungen nach ihrer Entfernung beibehalten. Da Sie die Pakete manuell entfernt haben, ist es schwer festzustellen, aber in Zukunft können Sie aptitude why ${package} ausführen für jedes Paket, das Ihrer Meinung nach automatisch entfernt werden sollte, und aptitude wird Ihnen sagen, warum es aufbewahrt wird.

Die Mechanik dahinter ist nicht unbedingt intuitiv. Wenn ein Paket als automatisch entfernbar gekennzeichnet ist, entweder manuell oder automatisch (im letzteren Fall, weil es automatisch installiert wird, um eine Abhängigkeit oder Empfehlung zu erfüllen), ist das Auto-Removal-Flag die einzige gespeicherte Information; das System merkt sich nicht, warum ein Paket automatisch installiert wurde. Solche Pakete werden nur so lange aufbewahrt, wie ein anderes Paket von ihnen abhängt oder sie empfiehlt (dies ist die Standardeinstellung, sie kann geändert werden).

All dies würde Ihre Situation wie folgt erklären. Sie haben bereits ein anderes Paket, A , Eingerichtet; Dieses Paket empfiehlt B aber letzteres ist nicht installiert. Sie installieren pipelight-multi was auch B empfiehlt; vorausgesetzt, Sie haben ausdrücklich --install-recommends angegeben , kennen wir B wird dann zusammen mit pipelight-multi installiert . Wenn Sie pipelight-multi entfernen und führen Sie apt-get autoremove aus , B ist als automatisch entfernbar markiert und wird überprüft, aber weil A ist noch installiert, B bleibt erhalten, obwohl das Paket, das die Installation verursacht hat, verschwunden ist. Weil A empfiehlt nur B , können Sie B manuell entfernen um zur Ausgangssituation zurückzukehren.

Verwandte:Wie funktioniert die Switch-Schnittstelle?
Ubuntu
  1. So listen Sie installierte Repositories in Ubuntu &Debian auf

  2. Warum funktioniert `exit &` nicht?

  3. Ubuntu 16.04 Beschädigte Pakete nach Neuinstallation?

  4. Kernel wurde zwischen 14.04 Lts und 16.04 Lts nicht aktualisiert?

  5. Warum hat Ubuntu den kostenlosen Versand seiner CDs eingestellt?

So listen Sie installierte Pakete in Ubuntu 20.04 auf

So listen Sie installierte Pakete auf Ubuntu- und Debian-basierten Linux-Distributionen auf

So listen Sie die installierten Softwarepakete auf Ubuntu auf

Conky funktioniert nicht richtig auf Ubuntu 16.04 Gnome?

So listen Sie installierte Pakete in Ubuntu 22.04 auf

So listen Sie installierte Pakete unter Ubuntu 22.04 auf