Rimuovere completamente tutti i pacchetti che ho installato?


12

Stavo usando un server Linux con CentOS7 installato per testare e installare alcuni strumenti. E ora non ricordo quanti pacchetti ho installato.

Voglio rimuovere tutti quei pacchetti in modo che il mio server sia come nuovo com'era. Non voglio cercare tutti i pacchetti e rimuoverli uno per uno. Esiste un modo per rimuoverli con un solo comando?


/var/log/yum.logpotrebbe essere utile, elenca sia il nome del pacchetto sia un timestamp. Per quanto posso vedere, non elenca i pacchetti aggiunti dalle installazioni iniziali.
Ulrich Schwarz,

Il file yum.log elenca tutti i pacchetti che ho installato, ma come posso eliminarli con un solo comando?
The One,

2
"Tecniche a guscio standard";) comesudo yum remove $(gawk '$0 ~ /Installed/ {printf "%s ", $NF}' /var/log/yum.log)
Ulrich Schwarz,

Risposte:


14

Elencare tutti i file in ordine inverso rispetto alla data di installazione in un file:

rpm -qa --last >list

Riceverai linee come

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

Scegli la data limite che ti interessa ed elimina tutte le righe che la seguono. Dai le righe rimanenti a yum da rimuovere, dopo aver rimosso la parte della data. Per esempio

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

7

Puoi anche provare con yum historye di solito ottieni un elenco numerato di ciò che è stato installato, come:

[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  

e puoi usarlo in seguito yum history undo 3per esempio.

Maggiori dettagli sulla storia di yum qui .


0

Per eseguire il rollback di tutte le transazioni cronologiche, è possibile utilizzare l'O-liner di seguito:

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

Prestare attenzione durante l'esecuzione di questo comando, poiché rimuoverà tutti i pacchetti installati! Se si desidera la conferma, è possibile rimuovere il flag -y.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.