Supprimer complètement tous les packages que j'ai installés?


12

J'utilisais un serveur Linux avec CentOS7 installé pour tester et installer certains outils. Et maintenant, je ne me souviens plus du nombre de packages que j'ai installés.

Je veux supprimer tous ces packages pour que mon serveur soit comme neuf. Je ne veux pas rechercher chaque package et en supprimer un par un. Existe-t-il un moyen de les supprimer avec une seule commande?


/var/log/yum.logpeut être utile, il répertorie à la fois le nom du package et un horodatage. Pour autant que je sache, il ne répertorie pas les packages ajoutés par les installations initiales.
Ulrich Schwarz

Le fichier yum.log répertorierait tous les packages que j'ai installés, mais comment pourrais-je tous les supprimer avec une seule commande?
The One

2
"Techniques d'obus standard";) commesudo yum remove $(gawk '$0 ~ /Installed/ {printf "%s ", $NF}' /var/log/yum.log)
Ulrich Schwarz

Réponses:


14

Liste tous les fichiers dans l'ordre inverse de leur date d'installation dans un fichier:

rpm -qa --last >list

Vous obtiendrez des lignes comme

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

Choisissez la date limite qui vous concerne et supprimez toutes les lignes qui la suivent. Donnez les lignes restantes à yum pour supprimer, après avoir supprimé la partie date. Par exemple

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

7

Vous pouvez également essayer avec yum historyet généralement vous obtenez une liste numérotée de ce qui a été installé, comme:

[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  

et vous pouvez utiliser par la suite yum history undo 3par exemple.

Plus de détails sur l'histoire de miam ici .


0

Afin de restaurer toutes les transactions d'historique, vous pouvez utiliser le o-liner ci-dessous:

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

Soyez prudent lors de l'exécution de cette commande, car elle supprimera tous vos packages installés! Si vous souhaitez une confirmation, vous pouvez supprimer l'indicateur -y.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.