Alle installierten Pakete vollständig entfernen?


12

Ich habe einen Linux-Server mit CentOS7 zum Testen und Installieren einiger Tools verwendet. Und jetzt weiß ich nicht mehr, wie viele Pakete ich installiert habe.

Ich möchte alle diese Pakete entfernen, damit mein Server wie neu ist. Ich möchte nicht nach jedem Paket suchen und eines nach dem anderen entfernen. Gibt es eine Möglichkeit, sie mit nur einem Befehl zu entfernen?


/var/log/yum.logDies kann hilfreich sein, da sowohl der Paketname als auch ein Zeitstempel aufgeführt werden. Soweit ich sehen kann, werden keine Pakete aufgelistet, die bei der Erstinstallation hinzugefügt wurden.
Ulrich Schwarz

In der Datei yum.log werden alle Pakete aufgelistet, die ich installiert habe. Wie kann ich jedoch alle mit nur einem Befehl löschen?
Der Eine

2
"Standardmuscheltechniken";) wiesudo yum remove $(gawk '$0 ~ /Installed/ {printf "%s ", $NF}' /var/log/yum.log)
Ulrich Schwarz

Antworten:


14

Listen Sie alle Dateien in umgekehrter Reihenfolge ihres Installationsdatums in einer Datei auf:

rpm -qa --last >list

Sie werden Linien wie bekommen

atop-2.1-1.fc22.x86_64                        Wed Apr 13 07:35:27 2016
telnet-server-0.17-60.fc22.x86_64             Mon Apr 11 20:10:43 2016
mhddfs-0.1.39-3.fc22.x86_64                   Sat Apr  9 21:26:06 2016
libpcap-devel-1.7.3-1.fc22.x86_64             Fri Apr  8 09:40:43 2016

Wählen Sie das für Sie geltende Stichtagsdatum und löschen Sie alle darauf folgenden Zeilen. Geben Sie die verbleibenden Zeilen zum Entfernen an yum, nachdem Sie den Datumsteil entfernt haben. Z.B

sudo yum remove $(awk '{print $1}' <list)

7

Sie können es auch mit versuchen. In der yum historyRegel erhalten Sie eine nummerierte Liste der installierten Komponenten, z.

[root@localhost ~]# yum history
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
ID | Login user               | Date and time    | Action(s)      | Altered
 3 | root <root>              | 2011-09-14 14:36 | Install        |    1   
 2 | root <root>              | 2011-09-12 15:48 | I, U           |   80   
 1 | System <unset>           | 2011-09-12 14:57 | Install        | 1025  

und Sie können yum history undo 3zum Beispiel danach verwenden.

Mehr Details zur Geschichte von yum hier .


0

Um alle Verlaufstransaktionen zurückzusetzen, können Sie den folgenden O-Liner verwenden:

# yum history list|awk '$1 ~ /[0-9]+/ {print $1}'| while read a; do yum history undo -y $a; done

Seien Sie vorsichtig, wenn Sie diesen Befehl ausführen, da dadurch alle installierten Pakete entfernt werden! Wenn Sie eine Bestätigung wünschen, können Sie das Flag -y entfernen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.