it-swarm.com.de

Wie kann eine Anwendung richtig vollständig entfernt werden?

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

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? Muss das "*" verwendet werden?

Danach habe ich auch diese Befehle gefunden:

Sudo updatedb
Sudo locate application
Sudo rm -rf (file/folder name)
541
user48949
  • apt-get remove packagename

    entfernt die Binärdateien, jedoch nicht die Konfigurations- oder Datendateien des Pakets packagename. Abhängigkeiten, die während der Installation installiert wurden, bleiben davon unberührt.

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

    entfernt ungefähr alles , was das Paket packagename betrifft, aber nicht die damit installierten Abhängigkeiten bei der Installation. Beide Befehle sind gleichwertig.

    Besonders nützlich, wenn Sie mit einer Anwendung von vorne beginnen möchten, weil Sie die Konfiguration durcheinander gebracht haben. Es werden jedoch keine Konfigurations- oder Datendateien entfernt, die sich in den Basisverzeichnissen der Benutzer befinden, normalerweise in versteckten Ordnern. Es gibt keine einfache Möglichkeit, diese ebenfalls zu entfernen.

  • apt-get autoremove

    entfernt verwaiste Pakete, d. h. installierte Pakete, die früher als Abhängigkeit installiert wurden, aber nicht mehr vorhanden sind. Verwenden Sie diese Option, nachdem Sie ein Paket entfernt haben, für das Abhängigkeiten installiert wurden, die Sie nicht mehr interessieren.

  • aptitude remove packagename oder aptitude purge packagename (ebenfalls)

    wird auch versuchen, andere Pakete zu entfernen, die von packagename benötigt wurden, aber von keinen verbleibenden Paketen benötigt werden. Beachten Sie, dass aptitude nur Abhängigkeitsinformationen für Pakete speichert, die installiert wurden.

Und es gibt noch viele mehr. Untergeordnete dpkg -Befehle können verwendet werden (erweitert) oder GUI-Tools wie Muon, Synaptic, Software Center usw. Es gibt keinen einzigen „richtigen Weg“, um Anwendungen zu entfernen oder andere Aufgaben auszuführen, mit denen Sie interagieren Ihre Paketverwaltung.

Die Liste, die Sie gefunden haben, ist nur ein Beispiel. Vergewissern Sie sich, dass Sie die Bedeutung verstanden haben, und probieren Sie aus, was es tun möchte, bevor Sie die Aktion akzeptieren (Sie müssen Y drücken, bevor es die vorgeschlagenen Aktionen tatsächlich ausführt).

Die Asterisk-Version in der Frage ist wahrscheinlich falsch; apt-get akzeptiert einen regulären Ausdruck und kein Glob-Muster als Shell. Also, was passiert mit

Sudo apt-get remove application*

ist das Folgende:

  1. Die Shell versucht, application* zu erweitern, indem sie die Dateien im aktuellen Verzeichnis betrachtet. Wenn es (wie normalerweise) nichts findet, gibt es das Glob-Muster unverändert zurück (vorausgesetzt, bash mit dem Standardverhalten hier --- zsh wird fehlschlagen).

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

  3. Um zu sehen, wie gefährlich dies sein kann, versuchen Sie (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, die es hat "gewinnen" in ihrem Namen und dem abhängigen, fast gesamten System ...

Wahrscheinlich ist der Befehl, der gemeint war, wirklich

 Sudo apt-get remove "^application.*"

(Beachten Sie die Anführungszeichen und den Punkt), wodurch alle Pakete entfernt werden, 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 völlig außerhalb des Geltungsbereichs 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
697
gertvdijk

Für Ubuntu 12.04 und höher lautet die richtige Methode:

Sudo apt-get --purge autoremove packagename

Wie detailliert hier .

Verwenden Sie packagename* nicht, da dies unbeabsichtigte Pakete löschen und mehr Probleme verursachen kann, als es löst. 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.

109
Kurtosis

Sie können diesen Befehl verwenden:

Sudo apt-get purge --auto-remove packagename

Erforderliche Pakete sowie Abhängigkeiten, die mit diesen Paketen installiert werden, werden gelöscht. Die Option --auto-remove (ein Alias ​​von autoremove) funktioniert ähnlich wie Sudo apt-get autoremove. Mit diesem Befehl können wir einen einzelnen Befehl ausführen:

Sudo apt-get purge --auto-remove packagename

Anstatt von:

Sudo apt-get purge packagename
Sudo apt-get autoremove
19
pl_rock

Sie können Sudo apt-get remove --purge application oder Sudo apt-get remove applications in 99% der Fälle sicher verwenden. Wenn Sie das Flag purge verwenden, werden auch alle Konfigurationsdateien entfernt. Je nachdem, ob Sie die Anwendung neu installieren möchten oder nicht. Der 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 lediglich darin, Reste von Anwendungen zu entfernen, von denen bekannt ist, dass sie unordentliche Deinstallationsprogramme enthalten. Außerdem werden lediglich alle Reste der Anwendung entfernt.

7
reverendj1

Ich habe einige Fehlermeldungen beim Entfernen eines Pakets erhalten. Die einzige Möglichkeit, wie ich herausfand, war die folgende:

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

Ich fand das, obwohl ich nur benutzte

dpkg --remove --force-remove-reinstreq package

entfernt das Paket nicht, sondern zeigt mir den richtigen Pfad zu der Datei, mit der ich es verschieben möchte:

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

Ersetzen Sie das Paket durch Ihren Anwendungsnamen. Benutze Sudo in Ubuntu, werde root in Debian.

5
DangerFireBob

Ich habe diesen Befehl im Internet gefunden.

dpkg --purge --force-depends application

http://www.debian-administration.org/article/Reinstalling_packages_to_fix_problems .

3
vrcmr

Ich wollte nur eines klarstellen, das hier Verwirrung stiftet. Das Dienstprogramm dpkg kennt die Abhängigkeiten von Paketen untereinander nicht und verfolgt sie nicht. Dies war meiner Meinung nach ein wichtiger Grund, warum apt entwickelt wurde. Sie können darüber in Abschnitt 8.6 auf dieser Seite lesen Das Debian GNU/Linux FAQ - Die Debian-Paketverwaltungstools

  • Mit apt: Wenn ich Paket A löschen wollte und es eine Abhängigkeit namens Paket B hat und Paket B keine anderen abhängigen Pakete hatte, werden Paket A und B gelöscht. Wenn Paket B DID andere abhängige Pakete hat, wird nur Paket A gelöscht.

  • Mit dpkg: Welche Abhängigkeit? Du hast mir nur gesagt, ich soll den Dreck beseitigen
    Paket, also habe ich es gemacht! Eine schlechte Planung von Ihrer Seite tut dies nicht
    einen Notfall meinerseits darstellen.

Vor diesem Hintergrund gibt es hier zwei Einzeiler, die für jede Reinigungsmethode verwendet werden können:

dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs Sudo dpkg --dry-run --purge

apt-get autoremove -y; apt-get --dry-run purge -y $(dpkg --list |grep '^rc' |awk '{print $2}')

Entfernen Sie den --dry-run, um den eigentlichen Löschvorgang auszuführen, anstatt zu melden, welche Aktionen er ausgeführt hätte.

1
Sysinfo.io

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

Beachten Sie, dass durch die Verwendung von Befehlen wie Sudo apt-get remove --purge applicationname einige Abhängigkeiten entfernt werden können, die von anderen Anwendungen benötigt werden, und dass dies Ihr System beschädigen kann.

Wenn Sie es sicherer machen möchten, können Sie es jederzeit über das Software-Center oder über apt-get remove applicationname entfernen. Wenn die Abhängigkeiten nicht mehr benötigt werden, setzen Sie später apt-get autoremove ab.

1
gustavokrm