¿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?


/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)

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í .


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.