Wie können Sie ein Paket vollständig entfernen?

188

Ich versuche, eine Neuinstallation des octave3.2Pakets durchzuführen.

Zu diesem Zweck habe ich es entfernt und anschließend versucht, es erneut zu installieren.

Bei der Neuinstallation ist ein Fehler aufgetreten. Es könnte ein Fehler im Paket sein, aber ich möchte sicherstellen, dass ich alles entfernt habe, damit ich eine Neuinstallation durchführen kann.

Ist es genug das zu tun?

sudo apt-get --purge remove octave3.2
user1012451
quelle
Könnte man das Paket neu installieren und auf die Paket- ODER Abhängigkeitsliste achten ..?
user309924
Empfohlen, dies zu besuchen
Pandya

Antworten:

185

Dies ist eine sehr allgemeine Antwort auf die Frage nach den Auswirkungen des Löschens von Paketen. Um situationsspezifische Ratschläge zu erhalten, müssen Sie Ihre Frage so bearbeiten, dass sie zusätzliche Informationen enthält, insbesondere den vollständigen und genauen Text der Fehlermeldung, die Sie erhalten.

Durch das Entfernen von Paketen mit oder werden diese und alle ihre globalen (dh systemweiten) Konfigurationsdateien entfernt. Dies ist normalerweise das, was Leute meinen, wenn sie über das vollständige Entfernen eines Pakets sprechen.sudo apt purge ...sudo apt --purge remove ...

Dies bedeutet jedoch nicht, dass Ihr System das gleiche ist wie vor der Installation des Pakets. Speziell:

  • Dadurch werden keine Pakete entfernt, die als Abhängigkeiten installiert wurden, als Sie das Paket installiert haben, das Sie jetzt entfernen. Vorausgesetzt, diese Pakete sind keine Abhängigkeiten von anderen Paketen und Sie haben sie nicht als manuell installiert markiert, können Sie die Abhängigkeiten mit sudo apt autoremoveoder entfernen (wenn Sie auch ihre systemweiten Konfigurationsdateien löschen möchten) sudo apt --purge autoremove.

  • Dadurch werden keine nicht systemweiten Konfigurationsdateien entfernt. Insbesondere werden benutzerspezifische Konfigurationen nicht entfernt:

    • Die Konfigurationsdateien und -verzeichnisse, die sich in den .configBasisverzeichnissen der Benutzer (oder im Unterverzeichnis ihrer Basisverzeichnisse) befinden und von der im Paket enthaltenen Software erstellt wurden, werden nicht entfernt.

      • Wenn diese Dateien / Ordner nicht in gespeichert sind .config, beginnen sie normalerweise mit einem .. In beiden Fällen können Sie sie mit lsder Markierung -aoder -Aanzeigen. Sie können sie in Nautilus und den meisten anderen Dateibrowsern / -managern anzeigen, indem Sie auf Ctrl+ drücken Hoder auf Ansicht > Versteckte Dateien anzeigen klicken .
    • An vorhandenen benutzerspezifischen Konfigurationsdateien vorgenommene Änderungen werden nicht rückgängig gemacht.

    • Es werden keine neuen gconfoder dconfSchlüssel entfernt gconfoder dconfKonfigurationsänderungen rückgängig gemacht .

  • Durch Verwenden von purgeoder --purge removeanstelle von werden removeÄnderungen an vorhandenen systemweiten Konfigurationsdateien, die von anderen Paketen bereitgestellt oder vom Benutzer manuell erstellt wurden, nicht rückgängig gemacht. Manchmal werden solche Änderungen jedoch rückgängig gemacht, indem das Paket deinstalliert wird (unabhängig davon, ob es sich purgeeher um ein als um ein handelt remove).

Eliah Kagan
quelle
61

Verwenden Sie den Befehl:

sudo apt-get purge --auto-remove packagename

Erforderliche Pakete sowie Abhängigkeiten, die mit diesen Paketen installiert werden, werden gelöscht. Die --auto-removeOption funktioniert ähnlich wie sudo apt-get autoremove.

pl_rock
quelle
1
Dies löste mein Problem, vor allem mit Certbot
T.Todua
7

Sie suchen zuerst nach dem Namen des Pakets, das Sie entfernen möchten:

dpkg --list

Dann entfernen Sie das angegebene Paket

sudo apt-get remove package_name

Löschen Sie den zugehörigen Code

sudo apt-get purge package_name

Dann Autoremove

sudo apt-get autoremove

Führen Sie abschließend eine Reinigung durch, um sicherzustellen, dass alles korrekt entfernt wurde

sudo apt-get clean

Sie möchten in der Paketliste überprüfen, ob das zu entfernende Paket nicht mehr aufgeführt ist, es ist jedoch optional.

Einen schönen Tag noch,

user2777677
quelle
4

Behalten Sie die installierten zusätzlichen Abhängigkeitspakete besser im Auge, während Sie eines installieren.

The following extra packages will be installed: 
    libgssglue1 libnfsidmap2 libtirpc1 nfs-common rpcbind

Wenn Sie nur das Originalpaket entfernen, bleibt das Abhängigkeitspaket möglicherweise erhalten.

Sie müssen also jedes manuell mit entfernen

apt-get purge package_name
Harikrishnan
quelle
1
Wie kann ich eine Liste dieser Pakete erhalten , wenn meine Konsole weit genug nicht nach oben
Luke Taylor
@ LukeTaylor apt-get install package_name > output Dann less output , um alle Ausgaben mit Scrollen zu sehen.
Harikrishnan
2

Anstatt automatisch installierte abhängige Pakete manuell zu entfernen, verwenden Sie stattdessen Folgendes:

 zanfilip @ zanfilip-VPCEB3L0E: ~ / jp / eclipse $ sudo apt-get --purge autoremove
    Paketlisten lesen ... Fertig
    Abhängigkeitsbaum erstellen       
    Statusinformationen werden gelesen ... Fertig
    Die folgenden Pakete werden ENTFERNT
      libupstart1 * linux-headers-3.16.0-30 * linux-headers-3.16.0-30-generic *
      Linux-Image-3.16.0-30-generic * Linux-Image-Extra-3.16.0-30-generic *
    0 zum Aktualisieren, 0 zum Neuinstallieren, 5 zum Entfernen und 23 zum Nicht-Aktualisieren.
    Nach diesem Vorgang werden 279 MB Festplattenspeicher freigegeben.
    Möchtest du weiter machen? [J / n]

zanfilip
quelle
2

Wenn Sie einige sichere Pakete entfernen möchten, können Sie die folgenden Befehle verwenden:

dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'| xargs apt-get -y --purge autoremove

Vergessen Sie nicht den Schalter "-y", da apt-get sonst ständig nach dem Entfernen der einzelnen Pakete fragt und nichts entfernt.

Kerem Ersoy
quelle
2
Dies könnte nützlich sein, aber auch zerstörerisch: Es könnte leicht zu einem Paket passen, das Sie nicht wirklich entfernen möchten, und seine Konfiguration ohne Bestätigung löschen! Zum Glück , da Paketnamen nie ein Leerzeichen enthalten, können wir es umdrehen und fallen die -y: apt-get --purge autoremove $(dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'). Das wäre etwas sicherer.
Joeytwiddle
Möglicherweise ist es sicherer, den Befehl wie folgt auszuführen: dpkg --get-selections | grep PACKAGE_NAME | awk '{print $ 1}' Zuerst mit xargs ausführen, ist eine bessere Methode, damit der Benutzer sieht, was als Ergebnis des Befehls gelöscht wird.
Kerem Ersoy
0

Eine andere Option, die Sie haben, ist die Verwendung des debfosterPakets. Auf diese Weise werden interaktiv Pakete zum Entfernen (und Löschen) sowie abhängige Pakete gesucht und vorgeschlagen.

sudo apt install debfoster
sudo debfoster
# and optionally remove debfoster too
sudo purge debfoster
MacroMan
quelle