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)
command-line
package-management
user48949
quelle
quelle
application*
Gelegentlich kann dies zu unerwarteten Ergebnissen führen. Wenn Sie beispielsweise eine Datei im aktuellen Verzeichnis namens habenapplication_information
, wird sie von der Shell erweitert, bevor sie an apt-get übergeben wird. Wenn dies geschieht und Sie das wörtliche Sternchen möchten, können Sieapplication\*
oder'application*'
application*
Noch gefährlicher ist es, wenn sich im aktuellen Verzeichnis keine Dateien befinden: Esapt-get
werden reguläre Ausdrücke und keine Glob-Muster verwendet. Die Leute haben fast das ganze System abgewischt und versucht, es zu entfernenwine*
.application*
nochapplication\*
sicher! Das Zitieren*
mit\
oder'
'
nur das Erhöhen des Risikos, das Sicherstellen, dass übergeben*
wird, wie es istapt-get
(obwohl es normalerweise sowieso ist!), Bewirkt , dassapt-get
das Argument als regulärer Ausdruck interpretiert wird. In einem regulären Ausdruck*
bedeutet "null oder mehr des vorhergehenden Zeichens". Eine häufige Form des Fehlers ist zu deinstallierenwine*
, alle Pakete zu entfernen mitwin
(nichtwine
,win
) überall in ihren Namen und alle Pakete je nach jedem von ihnen. Siehe diese Erklärung und mögliche Korrekturen . @ IzkataAntworten:
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
oderapt-get remove --purge packagename
entfernt alles, was das Paket betrifft
packagename
, 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, dh 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
oderaptitude purge packagename
(ebenfalls)wird auch versuchen, andere Pakete zu entfernen, die von
packagename
on benötigt wurden, aber von keinen verbleibenden Paketen benötigt werden. Beachten Sie, dassaptitude
nur Abhängigkeitsinformationen für Pakete gespeichert werden, die installiert wurden.Und es gibt noch viele mehr.
dpkg
Befehle auf niedrigerer Ebene können verwendet werden (für Fortgeschrittene) oder GUI-Tools wie Muon, Synaptic, Software Center usw. Es gibt keinen einzigen "richtigen" Weg, um Anwendungen zu entfernen oder andere Aufgaben auszuführen, die mit Ihrer Paketverwaltung interagieren.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 drücken,
Y
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 mitist das Folgende:
Die Shell versucht zu erweitern,
application*
indem sie sich die Dateien im aktuellen Verzeichnis ansieht. Wenn (wie normalerweise) nichts gefunden wird, wird das Glob-Muster unverändert zurückgegeben (vorausgesetzt, dasbash
Standardverhalten ist hier --- trittzsh
ein Fehler auf).apt-get
werden die Pakete entfernen , deren Namen enthält eine Zeichenfolge , die den regulären Ausdruck erfülltapplication*
, das heißt,applicatio
durch eine beliebige Anzahl von folgten
:applicatio
,application
,applicationn
,libapplicatio
, usw.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 gesagt, dass alle Pakete entfernt werden, die "win" in ihrem Namen und dem abhängigen haben, fast das gesamte System ...Wahrscheinlich ist der Befehl, der gemeint war, wirklich
(Beachten Sie die Anführungszeichen und den Punkt), wodurch alle Pakete entfernt werden, deren Name mit "" beginnt
application
.Diese Befehle,
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:
quelle
apt-get-autoremove --purge
Beachten Sie außerdem, dass Konfigurationsdateien in Ihrem Ausgangsverzeichnis von der Option --purge nicht betroffen sind. Diese müssen Sie manuell entfernen.apt remove -s texlive*
oder seineapt-get
Gegenstück Rücklaufleitungen wieNote, selecting 'texlive-font-utils' for glob 'texlive*'
(was bedeutet , dass sie in der Tat akzeptieren Klackse), gefolgt von den üblichenPackage 'texlive-common' is not installed, so not removed
und schließlichRemv
Linien, wieRemv texlive-font-utils [2015.20160320-1] [...]
.apt-get remove packa*
der Globus tatsächlich gebraucht wird,packa*
anstatt ihn als regulären Ausdruck zu betrachten: Er passt,package
aber nichtpack
.Für Ubuntu 12.04 und höher lautet die richtige Methode:
Wie hier beschrieben .
Verwenden Sie es nicht,
packagename*
da dies unbeabsichtigte Pakete löschen und mehr Probleme verursachen kann, als es löst. Oder wenn Sie müssen zumindest mit einem Lauf-s
,--simulate
,--dry-run
Flagge zuerst genau zu sehen , was es ohne es zu tun zu tun.quelle
Sie können diesen Befehl verwenden:
Erforderliche Pakete sowie Abhängigkeiten, die mit diesen Paketen installiert werden, werden gelöscht. Die
--auto-remove
Option (als Alias vonautoremove
) funktioniert ähnlich wiesudo apt-get autoremove
. Mit diesem Befehl können wir einen einzelnen Befehl ausführen:Anstatt von:
quelle
sudo apt-get --purge autoremove packagename
. Gleiche 1 Befehl hierapt-get autoremove --purge
werdenapt-get purge --auto-remove
?Sie können sicher
sudo apt-get remove --purge application
odersudo apt-get remove applications
99% der Zeit verwenden. Wenn Sie daspurge
Flag verwenden, werden auch alle Konfigurationsdateien entfernt. Je nachdem, ob Sie die Anwendung neu installieren möchten oder nicht. Dasapplication*
stimmt mit allen Anwendungen überein, die mit beginnenapplication
, in der Regel mit Plugins, zusätzlichen Funktionen usw. der Hauptanwendung, die Sie entfernen. dhentfernen würde
gedit
,gedit-plugins
undgedit-common
. 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.
quelle
Ich habe einige Fehlermeldungen beim Entfernen eines Pakets erhalten. Die einzige Möglichkeit, wie ich herausfand, war die folgende:
Ich fand das, obwohl ich nur benutzte
Entfernt das Paket nicht, sondern zeigt mir den richtigen Pfad zu der Datei, mit der ich es verschieben möchte:
Ersetzen Sie das Paket durch Ihren Anwendungsnamen. Benutze sudo in Ubuntu, werde root in Debian.
quelle
Ich habe diesen Befehl im Internet gefunden.
http://www.debian-administration.org/article/Reinstalling_packages_to_fix_problems .
quelle
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.
quelle
Ich wollte nur eine Sache klarstellen, die hier Verwirrung stiftet. Das
dpkg
Dienstprogramm kennt die Abhängigkeiten von Paketen untereinander nicht oder verfolgt sie nicht. Diesapt
war meiner Meinung nach ein wichtiger Grund, der entwickelt wurde. Sie können darüber in Abschnitt 8.6 auf dieser Seite lesen. Die Debian GNU / Linux-FAQ - Die Debian-PaketverwaltungstoolsMit 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 andere abhängige Pakete hatte, wird nur Paket A gelöscht.
Mit dpkg: Welche Abhängigkeit? Du hast mir gerade gesagt, ich soll das verdammte
Paket löschen , also habe ich das getan! Eine schlechte Planung von Ihrer Seite ist für mich kein
Notfall.
Vor diesem Hintergrund gibt es hier zwei Einzeiler, die für jede Reinigungsmethode verwendet werden können:
Entfernen Sie das Kontrollkästchen
--dry-run
, um den eigentlichen Löschvorgang auszuführen, anstatt zu melden, welche Aktionen er ausgeführt hätte.quelle