¿Eliminar completamente todos los paquetes que instalé?

12

Estaba usando un servidor Linux con CentOS7 instalado para probar e instalar algunas herramientas. Y ahora no recuerdo cuántos paquetes instalé.

Quiero eliminar todos esos paquetes para que mi servidor esté como nuevo. No quiero buscar cada paquete y eliminar uno por uno. ¿Hay alguna forma de eliminarlos con solo un comando?

El único
fuente
/var/log/yum.logpuede ser útil, enumera tanto el nombre del paquete como la marca de tiempo. Hasta donde puedo ver, no enumera los paquetes agregados por las instalaciones iniciales.
Ulrich Schwarz
El archivo yum.log enumeraría todos los paquetes que instalé, pero ¿cómo podría eliminarlos con solo 1 comando?
El
2
"Técnicas de concha estándar";) comosudo yum remove $(gawk '$0 ~ /Installed/ {printf "%s ", $NF}' /var/log/yum.log)
Ulrich Schwarz

Respuestas:

14

Liste todos los archivos en el orden inverso de su fecha de instalación en un archivo:

rpm -qa --last >list

Obtendrás líneas como

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

Elija la fecha de corte que le corresponda y elimine todas las líneas que le siguen. Dele las líneas restantes a ñam para eliminar, después de eliminar la parte de la fecha. P.ej

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

También puede probar yum historyy generalmente obtiene una lista numerada de lo que se ha instalado, como:

[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  

y puedes usar después yum history undo 3por ejemplo.

Más detalles sobre la historia de yum aquí .

mazs
fuente
0

Para deshacer todas las transacciones del historial, puede usar el siguiente o-liner:

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

Tenga cuidado al ejecutar este comando, porque eliminará todos los paquetes instalados. Si desea confirmación, puede eliminar el indicador -y.

sbz
fuente