Te va a pasar alguna vez como a mi que después de hacer un deploy de actualizaciones en Centos/Mandriva/RedHat/etc te das cuenta que le pifiaste!. Si, si señor!.
Lo que distingue es saber aceptar los errores. Una vez aceptados que hacemos para solucionar el problema?.
Bueno, casualmente YUM tiene una opción para realizar rollback ante una instalación fallida.
Para el ejemplo realizamos la instalación de Nmap con #yum install nmap
[pastacode lang=»bash» message=»Instalamos NMAP» highlight=»» provider=»manual»]
[root@server ~]# yum install nmap
Complementos cargados:fastestmirror, langpacks
base | 3.6 kB 00:00
extras | 3.4 kB 00:00
mysql-connectors-community | 2.5 kB 00:00
mysql-tools-community | 2.5 kB 00:00
mysql56-community | 2.5 kB 00:00
updates | 3.4 kB 00:00
(1/2): extras/7/x86_64/primary_db | 116 kB 00:00
(2/2): updates/7/x86_64/primary_db | 4.7 MB 00:02
Loading mirror speeds from cached hostfile
* base: mirrors.dcarsat.com.ar
* extras: mirrors.dcarsat.com.ar
* updates: mirrors.dcarsat.com.ar
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete nmap.x86_64 2:6.40-4.el7 debe ser instalado
--> Procesando dependencias: nmap-ncat = 2:6.40-4.el7 para el paquete: 2:nmap-6.40-4.el7.x86_64
--> Ejecutando prueba de transacción
---> Paquete nmap-ncat.x86_64 2:6.40-4.el7 debe ser instalado
--> Resolución de dependencias finalizada
Dependencias resueltas
=======================================================================================================
Package Arquitectura Versión Repositorio Tamaño
=======================================================================================================
Instalando:
nmap x86_64 2:6.40-4.el7 base 3.9 M
Instalando para las dependencias:
nmap-ncat x86_64 2:6.40-4.el7 base 200 k
Resumen de la transacción
=======================================================================================================
Instalar 1 Paquete (+1 Paquete dependiente)
Tamaño total de la descarga: 4.1 M
Tamaño instalado: 17 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): nmap-ncat-6.40-4.el7.x86_64.rpm | 200 kB 00:00:00
(2/2): nmap-6.40-4.el7.x86_64.rpm | 3.9 MB 00:00:01
-------------------------------------------------------------------------------------------------------
Total 2.6 MB/s | 4.1 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Instalando : 2:nmap-ncat-6.40-4.el7.x86_64 1/2
Instalando : 2:nmap-6.40-4.el7.x86_64 2/2
Comprobando : 2:nmap-6.40-4.el7.x86_64 1/2
Comprobando : 2:nmap-ncat-6.40-4.el7.x86_64 2/2
Instalado:
nmap.x86_64 2:6.40-4.el7
Dependencia(s) instalada(s):
nmap-ncat.x86_64 2:6.40-4.el7
¡Listo!
[/pastacode]
Una vez instalado buscamos con #yum history la lista de las últimas actualizaciones instaladas. Normalmente arriba las últimas y más abajo las siguientes, la nuestra es la 8. Fecha y hora de hoy.
[pastacode lang=»bash» message=»#yum history» highlight=»» provider=»manual»]
[root@server ~]# yum history
Complementos cargados:fastestmirror, langpacks
ID | Registro de usuario | Día y hora | Acción(es) | Modific
-------------------------------------------------------------------------------
8 | root | 2015-11-10 10:04 | Install | 2
7 | root | 2015-11-03 15:09 | Install | 1
6 | root | 2015-11-03 15:06 | Install | 1
5 | root | 2015-11-03 12:24 | I, O | 5
4 | root | 2015-11-03 11:42 | Install | 1
3 | root | 2015-11-03 11:41 | Install | 21
2 | root | 2015-11-02 12:55 | I, O, U | 411 EE
1 | Sistema | 2015-09-02 00:09 | Install | 783
history list
[/pastacode]
Listo, ya sabemos a cuál restaurar. Comencemos: #yum history undo 8
[pastacode lang=»bash» message=»#yum history undo 8″ highlight=»» provider=»manual»]
[root@server ~]# yum history undo 8
Complementos cargados:fastestmirror, langpacks
Undoing transaction 8, from Tue Nov 10 10:04:02 2015
Instalar nmap-2:6.40-4.el7.x86_64 @base
Instalación de dependencias nmap-ncat-2:6.40-4.el7.x86_64 @base
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete nmap.x86_64 2:6.40-4.el7 debe ser eliminado
---> Paquete nmap-ncat.x86_64 2:6.40-4.el7 debe ser eliminado
--> Resolución de dependencias finalizada
Dependencias resueltas
=======================================================================================================
Package Arquitectura Versión Repositorio Tamaño
=======================================================================================================
Eliminando:
nmap x86_64 2:6.40-4.el7 @base 16 M
nmap-ncat x86_64 2:6.40-4.el7 @base 410 k
Resumen de la transacción
=======================================================================================================
Eliminar 2 Paquetes
Tamaño instalado: 17 M
Está de acuerdo [s/N]:s
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Eliminando : 2:nmap-6.40-4.el7.x86_64 1/2
Eliminando : 2:nmap-ncat-6.40-4.el7.x86_64 2/2
Comprobando : 2:nmap-6.40-4.el7.x86_64 1/2
Comprobando : 2:nmap-ncat-6.40-4.el7.x86_64 2/2
Eliminado(s):
nmap.x86_64 2:6.40-4.el7 nmap-ncat.x86_64 2:6.40-4.el7
¡Listo!
[root@server ~]#
[/pastacode]
Y se desinstaló todo correctamente.
En el caso de que hubieran más de una actualización el rollback haría el proceso inverso para todo igual que en este ejemplo.