Ich habe Carpadio auf meiner Xubuntu-Installation (einem Live-USB) installiert, die dann wie über 50 Pakete von der Ubuntu-Seite des Repository gezogen hat. Jetzt möchte ich das rückgängig machen. Trotz all meiner Jagd kann ich nichts Nützlicheres finden als den Befehl Wie kann ich den Befehl sudo apt get install rückgängig machen , der nur andeutet apt-get purge
. Dies ist nicht sinnvoll, da nur 2 Packungen (Carpadio und Carpadio-Gnomepanel) entfernt werden.
/var/log/apt/history.log
enthält eine Liste aller Pakete, die zusammen mit diesem Befehl installiert wurden. Also habe ich mich gefragt, ob es einen einfachen Weg gibt, alle zu entfernen ? Ansonsten kann ich mich einfach neu installieren, das war sowieso eine Neuinstallation, aber ich bin neugierig.
Ein kleines Beispiel des Verlaufsprotokolls (1 / 5-1 / 10 der gesamten Liste)
Befehlszeile: apt-get install cardapio-gnomepanel
Installieren Sie: libdbusmenu-qt2: amd64 (0.9.2-0ubuntu1, automatic), python-packagekit: amd64 (0.7.2-4ubuntu3, automatic), cups-pk-helper: amd64 (0.2.1.2-1ubuntu0.1, automatic) , Geoclue: amd64 (0.12.0-1ubuntu12, automatic), Einheit: amd64 (5.18.0-0ubuntu1, automatic), Indikatordrucker: amd64 (0.1.6-0ubuntu1, automatic), Libevolution: amd64 (3.2.3- 0ubuntu6, automatisch), libqt4-deklarativ: amd64 (4.8.1-0ubuntu4.3, automatisch), libmtp9: amd64 (1.1.3-1ubuntu0.1, automatisch), tracker-miner-fs: amd64 (0.14.0-2ubuntu1 , automatic), gir1.2-rb-3.0: amd64 (2.96-0ubuntu4.2, automatic), python-aptdaemon.pkcompat: amd64 (0.43 + bzr805-0ubuntu7, automatic), gnome-media: amd64 (3.4.0- 0ubuntu3.1, automatic), Metacity: amd64 (2.34.1-1ubuntu11, automatic), Nautilus: amd64 (3.4.2-0ubuntu6, automatic), libcompizconfig0: amd64 (0.9.7.0 ~ bzr428-0ubuntu6, automatic), compiz- Plugins-Standard:amd64 (0.9.7.12-0ubuntu1, automatic), libunistring0: amd64 (0.9.3-5, automatic), libebackend-1.2-1: amd64 (3.2.3-0ubuntu7, automatic), ubuntu-docs: amd64 (12.04.6 , automatic), python-mako: amd64 (0.5.0-1, automatic),
Allen, die vorgeschlagen haben autoremove
: Ich bin nicht sicher, warum, aber ich habe nur ein anderes Python-Paket (Python-Keybinder oder so) als "unnötig" erhalten, und das ist alles, was autoremove entfernen konnte.
Zwischen der Installation und Deinstallation wurden nur wesentliche Änderungen vorgenommen xubuntu-restricted-extras
.
sudo apt-get install -s package
where-s
bezeichnet eine Simulation undpackage
wird durch den Namen der entsprechenden Software ersetzt.cardapio-gnomepanel
Paket tatsächlich entfernt ?apt-get remove carpadio
das hat man auch mitgenommen .autoremove
nicht für dich arbeite. Entweder haben Sie jetzt alle Pakete als manuell installiert markiert oder es liegt ein Missverständnis vor. Es ist ganz einfach:apt-get autoremove
Entfernt einfach alle automatisch installierten, markierten Pakete, ohne Grund, sie jetzt zu haben. Wenn es bei Ihnen nicht funktioniert, haben Sie wahrscheinlich etwas an Ihrem System geändert, über das Sie in Ihrer Frage nichts gesagt haben.Antworten:
Grundsätzlich werden Sie beide haben
apt-get remove
(oder apt-get Spülung) , um das Paket und laufenapt-get autoremove
danach, haben sie die Installation von zufälltpackage-one
.Schauen wir uns den gesamten Prozess an:
sudo apt-get install package-one
Installiert 50 Abhängigkeiten mit der Markierung "Automatisch", wie auch aus dem Protokollauszug in Ihrer Frage hervorgehtsudo apt-get purge package-one
entfernt (Säuberungen) nur ein, sondern tun dies laufen!Alle folgenden Installationsaktionen (sofern Sie eine ausführen) führen zu einer Informationsmeldung mit den nicht mehr benötigten Paketen:
Diese Liste ist im Grunde genommen nur eine Liste aller Pakete, die als "automatisch" markiert sind, ohne dass eine umgekehrte Abhängigkeit von ihnen besteht. Mit anderen Worten, es gibt keinen Grund, sie für die Paketverwaltung zu installieren.
Hinweis: Es ist keine Installation erforderlich! Es soll nur demonstrieren, dass APT klug ist, Ihnen von Ihren nicht benötigten Paketen zu erzählen!
sudo apt-get autoremove --purge
entfernt dieseMehr Informationen
Offizielle Dokumentation auf
autoremove
derapt-get(8)
Manpage:Wie kann eine Anwendung richtig vollständig entfernt werden?
quelle
autoremove
.autoremove
hat nicht geholfen.sudo apt-get update
ausreichen?Wenn Sie ein Paket und die zu diesem Zeitpunkt installierten Abhängigkeiten entfernen möchten, sollten Sie Folgendes verwenden:
Aber um
apt
Aktionen rückgängig zu machen , können Sie einapt-undo
Skript verwenden. Es ist ein einfaches Skript, dasapt
die in Ubuntu ausgeführten Aktionen rückgängig machen kann . Es ist zu beachten, dass dieses Skript nur funktionieren kann, wenn Sie es verwenden, anstattapt-get
Ihre Pakete zu installieren / upgraden / entfernen / bereinigen / downgraden.apt-undo
Führen Sie zur Installation in Ubuntu die folgenden Befehle im Terminal aus:Verwendungszweck:
Zum Rückgängigmachen führen die obigen
aptitude
Aktionen die folgenden Befehle im Terminal aus:quelle
Nutzen Sie die Kraft von Unix. Nehmen Sie die Protokolldatei-Zeile, die Sie haben, und erstellen Sie einen Befehl, der das, was Apt getan hat, rückgängig macht. Zum Beispiel:
Auf diese Weise können Sie alle versehentlich installierten Pakete löschen, wenn Sie die entsprechende Zeile in Ihrer Protokolldatei eingeben:
(Ich habe
perl
anstelle von "sed
weil"sed
einen regulären Ausdruck verwendet, der keine nicht gierigen Übereinstimmungen unterstützt. Dies war der einfachste Weg, das zu konstruieren, was ich brauchte.)quelle
apt
Protokoll in eine neue Datei kopiert und diese dann darauf angewendet:perl -pe 's/\(.*?\)(, )?//g' /path/to/apt-history.log
Dann habe ich der Ausgabe nur noch vorangestelltsudo apt-get remove
und es ging los!Nachdem Sie entfernen Sie das Paket, und man kann es durch Zugabe von --purge gründlich entfernen, denn,
apt-get remove --purge <package>
sollte es Ihnen, geben Sie eine Nachricht , die die Bibliothekspakete es in automatisch installiert wurden gezogen und nicht mehr notwendig, bei denen Sie ausführen können , verweisenapt-get autoremove
auf entferne sie.quelle
Folgen Sie der
sudo apt-get purge packagename
mitSofern es sich nicht um ein Metapaket handelt, sollte sich das darum kümmern.
Siehe auch die FAQ unter Wie entferne ich alle Cardapio-Dateien manuell ? .
quelle
new_file.txt
perl -pe 's/\(.*?\)(, )?//g' /path/to/new_file.txt
sudo apt-get remove
[hier den Inhalt der Zwischenablage einfügen]Getan.
Grundsätzlich müssen wir die Liste der Pakete aus dem apt-Protokoll in etwas formatieren, das apt-get verstehen kann. Die Klammern, die Wörter dazwischen und die Kommas müssen entfernt werden, damit das Perl zum Spielen hereinkommt. Ja, es gibt bessere (effizientere) Wege - aber ich habe dies getan, es ist leicht zu verstehen und es funktioniert.
quelle
Um die letzte apt-Installation rückgängig zu machen, können Sie auch Folgendes verwenden:
Dadurch wird die letzte passende Installation aus dem Verlauf abgerufen und alle hier installierten Pakete gelöscht.
Sie können eine Funktion namens aptpurgelastinstall erstellen, um sie immer zur Hand zu haben (fügt den Code zu ~ / .bashrc hinzu):
Jetzt müssen Sie nur noch aptpurgelastinstall in die Shell eingeben, um die letzte Installation zu wiederholen.
quelle
Wenn Sie gerade ein ppa hinzugefügt haben und es wiederherstellen möchten, müssen Sie die unten beschriebenen Schritte ausführen. Verstehen Sie, dass dies fehlschlagen kann, wenn Sie andere Pakete installiert haben, die Sie nicht deinstallieren möchten. Ich bin sicher, dass dies mit einem Skript möglich ist. Persönlich denke ich, dass dies ein Teil von apt sein sollte und es eine bessere Verwaltung geben sollte, welche Pakete aufgrund von Abhängigkeiten installiert werden und welche auf Anfrage des Benutzers installiert werden.
1) Entfernen Sie das ppa aus /etc/apt/sources.list. Denken Sie daran, wann Sie das ppa hinzugefügt haben. Wenn Sie Glück haben, müssen Sie nicht präzise sein.
2) Machen Sie eine Liste, was nach der Installation der PPA neu installiert werden soll: cat /var/log/dpkg.log | grep 'upgrade'
3) Erstellen Sie eine Liste mit den zu entfernenden Elementen, sobald Sie die PPA installiert haben: cat /var/log/dpkg.log | grep 'install'
4) entferne alle Pakete aus Schritt 3: sudo apt-get remove {Liste der Pakete aus Schritt 3}
5) Installieren Sie alle Pakete von Schritt 2 neu: sudo apt-get install --reinstall {Liste der Pakete von Schritt 2}
6) Wenn etwas schief gelaufen ist und Sie sich keine Lösung vorstellen können, setzen Sie die PPA zurück und installieren Sie alle Pakete aus den beiden Listen neu.
quelle
Ich weiß, es ist eine ziemlich alte Frage, aber ich bin hierher gekommen, um Hilfe zu suchen und vielleicht kann ich jemandem helfen. Ich hatte nach der Installation eine ähnliche Situation wie bei @ Karthik-T
unity8-desktop-session-mir
. Ich weiß, dass es eine große Sache ist. Es zog 233 Päckchen mit sich.Mit
autoremove
bekomme ich nur 34 von ihnen entfernt. Der Punkt ist, dass während derunity8-desktop-session-mir
Installation zwei Pakete (python3-aptdaemon.pkcompat
undevolution-data-server-online-accounts
) entfernt wurden. Es steht in/var/log/apt/history.log
nach demInstall
Abschnitt.Um die Installation von Unity 8 vollständig rückgängig zu machen, habe ich Folgendes ausgegeben:
sudo apt-get purge unity8-desktop-session-mir
sudo apt-get --purge autoremove
sudo apt-get install python3-aptdaemon.pkcompat evolution-data-server-online-accounts
(Es wurden 8 Pakete für Unity 8 entfernt.)sudo apt-get --purge autoremove
Dadurch wird nicht alles entfernt, was Sie zuvor installiert haben, aber in einigen Fällen ist es gut genug.
PS: Vielleicht ist das
autoremove
bei Schritt zwei nicht nötig, da ich bei Schritt vier nochmal ausgegeben habe.quelle
Technisch gesehen sind "Entfernen" - oder "Autoremove" -Operationen nicht "rückgängig", obwohl sie die meiste Zeit gut genug ausgeführt werden können.
Standardmäßig hinterlässt apt-get Pakete, sofern Sie dies nicht angeben
-o APT::Suggests-Important=0 -o APT::Recommends-Important=0
Es ist zuverlässiger, einen Blick auf das Apt zu werfen
history.log
und alle installierten Pakete zu deinstallieren. Ich habe ein kleines, knotenbasiertes Skript erstellt, um den Vorgang zu vereinfachen:https://github.com/rolfen/apt-history
Außerdem gibt es hier einen weiteren, manuelleren Ansatz zum Zurücksetzen von Änderungen:
https://unix.stackexchange.com/a/236711
quelle