YUM

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.

Por Jeremías Palazzesi

Solucionador de Problemas Senior!. No podés con algo?, probá conmigo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *