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