Was ist der richtige Weg, um eine Anwendung vollständig zu entfernen?

472

Ich habe im Internet nach solchen Informationen gesucht und verschiedene Befehlszeilen gefunden, wie diese:

sudo apt-get remove application
sudo apt-get remove application*

sudo apt-get remove --purge application
sudo apt-get remove --purge application*

sudo apt-get purge application
sudo apt-get purge application*

Also, was ist der richtige Weg? Ist es notwendig, das "*" zu verwenden?

Danach habe ich auch folgende Befehle gefunden:

sudo updatedb
sudo locate application
sudo rm -rf (file/folder name)
    
user48949 14.09.2012, 23:54
quelle

7 Antworten

627
  • apt-get remove packagename

    löscht die Binärdateien, aber nicht die Konfigurations- oder Datendateien des Pakets packagename . Abhängigkeiten, die während der Installation installiert werden, bleiben ebenfalls unberührt.

  • apt-get purge packagename oder apt-get remove --purge packagename

    wird ungefähr alles bezüglich des Pakets packagename entfernen, aber nicht die Abhängigkeiten, die bei der Installation installiert wurden. Beide Befehle sind gleichwertig.

    Besonders nützlich, wenn Sie mit einer Anwendung "neu anfangen" wollen, weil Sie die Konfiguration durcheinander gebracht haben. Es entfernt jedoch nicht die Konfigurations- oder Datendateien, die sich in den Benutzerverzeichnissen befinden, normalerweise in versteckten Ordnern. Es gibt keine einfache Möglichkeit, diese auch zu entfernen.

  • apt-get autoremove

    entfernt verwaiste Pakete, d. h. installierte Pakete, die früher als Abhängigkeit installiert wurden, aber nicht mehr. Verwenden Sie dies, nachdem Sie ein Paket entfernt haben, das Abhängigkeiten installiert hat, an denen Sie nicht mehr interessiert sind.

  • aptitude remove packagename oder aptitude purge packagename (ebenfalls)

    versucht auch, andere Pakete zu entfernen, die von packagename benötigt werden, aber von keinem der verbleibenden Pakete benötigt werden. Beachten Sie, dass aptitude nur die Abhängigkeitsinformationen für die installierten Pakete speichert.

Und viele mehr existieren. Untergeordnete dpkg -Befehle können verwendet werden (erweiterte) oder GUI-Tools wie Muon, Synaptic, Software Center usw. Es gibt keine einzige "richtige" Möglichkeit, Anwendungen zu entfernen oder andere Aufgaben mit der Paketverwaltung zu tun .

Die Liste, die Sie gefunden haben, sind nur Beispiele. Stellen Sie sicher, dass Sie die Bedeutungen verstanden haben und versuchen Sie, was Sie tun möchten, bevor Sie die Aktion akzeptieren (Sie müssen Y drücken, bevor sie die vorgeschlagenen Aktionen ausführt).

Die Sternchenversion in der Frage ist wahrscheinlich falsch ; apt-get akzeptiert einen regulären Ausdruck und kein Glob-Muster als Shell. Was passiert mit

?
sudo apt-get remove application*

ist das Folgende:

  1. Die Shell versucht, application* auf die Dateien im aktuellen Verzeichnis zu erweitern. Wenn (wie es normalerweise der Fall ist) es nichts findet, gibt es das Glob-Muster unverändert zurück (angenommen bash mit Standardverhalten hier --- zsh wird fehlerfrei).

  2. apt-get entfernt die Pakete, deren Name eine Zeichenfolge enthält , die den regulären Ausdruck application* erfüllt, also applicatio , gefolgt von einer beliebigen Anzahl n : applicatio , application , applicationn , libapplicatio , usw.

  3. Um zu sehen, wie dies gefährlich sein kann, probiere (ohne root für doppelte Sicherheit) apt-get -s remove "wine*" ( -s simuliert das Ding, anstatt es zu tun) --- es wird sagen, dass alle Pakete entfernt werden das hat in ihrem Namen und dem abhängigen, fast dem ganzen System "gewonnen" ...

Wahrscheinlich ist der Befehl, der gemeint war, wirklich

 sudo apt-get remove "^application.*"

(notieren Sie die Anführungszeichen und den Punkt), die alle Pakete entfernen, deren Name mit application beginnt.

Diese Befehle,

sudo updatedb                  # <-- updates the locate database (index). harmless
sudo locate application        # <-- locates the file 'application'. harmless
sudo rm -rf (file/folder name) # <-- removes files/dirs recursively. dangerous.

liegen vollständig außerhalb des Bereichs der Paketverwaltung. Entfernen Sie keine Dateien, die zu Paketen gehören, ohne den Paketmanager zu verwenden! Es wird verwirrt und ist der falsche Weg, Dinge zu tun.

Wenn Sie nicht wissen, zu welchem ​​Paket eine Datei gehört, versuchen Sie Folgendes:

dpkg -S /path/to/file
    
gertvdijk 15.09.2012 00:04
quelle
91

Für Ubuntu 12.04 und vielleicht höher ist die korrekte Methode:

sudo apt-get --purge autoremove packagename

Wie detailliert hier .

Verwenden Sie nicht packagename* , da dies unbeabsichtigte Pakete löschen und mehr Probleme verursachen kann, als gelöst werden können. Oder wenn Sie müssen, führen Sie es zumindest mit einem -s , --simulate , --dry-run -Flag aus, um genau zu sehen, was es tun wird, ohne es zu tun.

    
Kurtosis 20.11.2013 21:01
quelle
17

Sie können diesen Befehl verwenden:

sudo apt-get purge --auto-remove packagename

Es löscht die erforderlichen Pakete zusammen mit den Abhängigkeiten, die mit diesen Paketen installiert werden. Die Option --auto-remove (die ein Alias ​​von autoremove ist) funktioniert ähnlich wie sudo apt-get autoremove . Mit diesem Befehl können wir einen einzigen Befehl ausführen:

sudo apt-get purge --auto-remove packagename

Anstelle von:

sudo apt-get purge packagename
sudo apt-get autoremove
    
pl_rock 16.09.2015 22:08
quelle
7

Sie können sicher sudo apt-get remove --purge application oder sudo apt-get remove applications 99% der Zeit verwenden. Wenn Sie das Flag purge verwenden, werden einfach alle Konfigurationsdateien entfernt. Welches ist oder was nicht, was Sie wollen, abhängig davon, ob Sie die Anwendung neu installieren möchten. Das application* stimmt mit allen Anwendungen überein, die mit application beginnen. Dies sind normalerweise Plugins, zusätzliche Funktionen usw. der Hauptanwendung, die Sie entfernen. d. h.

sudo apt-get remove gedit*

würde gedit , gedit-plugins und gedit-common entfernen. In der Regel ist dies nicht erforderlich, da die meisten Plugins / zugehörigen Programme von der Hauptanwendung abhängig sind und beim Deinstallieren der Hauptanwendung automatisch entfernt (oder zum Entfernen markiert) werden.

Ihr letzter Befehl besteht nur darin, Reste von Anwendungen zu entfernen, von denen bekannt ist, dass sie unordentliche Deinstallationsprogramme haben, und nur irgendwelche Reste der Anwendung entfernen.

    
reverendj1 15.09.2012 00:05
quelle
5

Ich habe einige Fehlermeldungen erhalten, die ein Paket entfernen. Die einzige Methode, die ich gefunden habe, war:

mv /var/lib/dpkg/info/package.* /tmp/
dpkg --remove --force-remove-reinstreq package

Ich habe festgestellt, dass obwohl nur

verwendet wird
dpkg --remove --force-remove-reinstreq package

entfernt das Paket nicht, es zeigt mir den korrekten Pfad zu der Datei an, mit der verschoben werden soll:

mv /var/lib/dpkg/info/package.* /tmp/

Ersetzen Sie das Paket mit Ihrem Anwendungsnamen. Benutze Sudo in Ubuntu, werde Root in Debian.

    
DangerFireBob 26.02.2015 10:26
quelle
3

Ich habe diesen Befehl im Internet gefunden.

dpkg --purge --force-depends application

Pfandrecht .

    
vrcmr 15.09.2012 00:10
quelle
1

Das hängt von der Anwendung ab, die Sie entfernen möchten. Überprüfen Sie immer die Abhängigkeiten, bevor Sie den Befehl yes ausführen. Wenn Sie etwas über die Befehlszeile entfernen, werden manchmal eine Handvoll Bibliotheken angezeigt, die nicht mehr benötigt werden. Diese können mit apt-get autoremove entfernt werden.

Beachten Sie, dass durch Verwendung von Befehlen wie sudo apt-get remove --purge Anwendungsname einige Abhängigkeiten entfernen kann, die von anderen Anwendungen benötigt werden und Ihr System dadurch möglicherweise beschädigt wird.

Wenn Sie es auf sicherere Weise tun möchten, können Sie es immer nur mit dem Software-Center oder apt-get remove Anwendungsname entfernen. Wenn die Abhängigkeiten nicht mehr benötigt werden, geben Sie apt-get später automatisch zurück.

    
gustavokrm 15.09.2012 00:10
quelle