Rollback de instalaciones y actualizaciones con yum history

Hoy una pequeña píldora o tip, según que terminología esté de moda en cada momento, sobre la vuelta atrás o utilizando el «palabro» anglasajón ‘rollback‘, en la instalación de paquetes o actualizaciones con yum, en sistemas como RHEL, CentOS, Fedora y derivadas, utilizando ‘yum history

Rollback de instalaciones y actualizaciones con yum

La herramienta básica que vamos a utilizar es ‘yum history’, que permitirá consultar en un primer estado toda la actividad de esta herramienta. Por ejemplo si instalamos un paquete, véase ‘dstat‘ :

  1. sudo yum install dstat

Utilizando la herramienta ‘yum’ más el parámatreo ‘history’, veamos el resultado:

  1. yum history
  2. #Con el resultado:
  3. Complementos cargados:fastestmirror
  4. ID     | Registro de usuario      | Día y hora       | Acción(es)     | Modific
  5. -------------------------------------------------------------------------------
  6.     10 |    davidochobits       | 2018-03-16 21:13 | Install        |    1
  7.      9 |    davidochobits       | 2018-03-16 20:36 | I, U           |   64

De esta manera listamos todo el histórico, tanto de instalaciones como de actualizaciones. A cada una de las transacciones se le asigna un número de ID; en los otros campos se nos muestra el comando utilizado, la fecha y la hora, la acción de realizada y por último el número de paquetes utilizados en dicha transacción.

Si queremos ampliar información sobre una de las trasacciones, entonces añadiremos a la jugada el parámetro ‘info’ más la ID, de la siguiente forma:

  1. sudo yum history info 10
  2. #Con el resultado:
  3. Complementos cargados:fastestmirror
  4. ID de transacción : 10
  5. Hora inicial     : Fri Mar 16 21:13:54 2018
  6. Rpmdb inicial    : 349:8b09b4cb24e2c998575a33363722b22ae62e0a6b
  7. Hora final       :             21:13:56 2018 (2 segundos)
  8. Rpmdb final      : 350:ccf791b93a16f8445a33351b7cc01de3a98f8f39
  9. Usuario           : davidochobits 
  10. Codigo-obtenido    : Exito
  11. Línea de comando   : install dstat
  12. Transacción realizada con:
  13.     Instalado      rpm-4.11.3-25.el7.x86_64                      @anaconda
  14.     Instalado      yum-3.4.3-154.el7.centos.1.noarch             @updates
  15.     Instalado      yum-plugin-fastestmirror-1.1.31-42.el7.noarch @anaconda
  16. Paquetes modificados:
  17.     Instalar dstat-0.7.2-12.el7.noarch @base
  18. history info

Sin duda información muy útil. Imaginemos ahora que queremos revertir una instalación o actualización; entonces utilizaremos el parámetros ‘undo’:

  1. sudo yum history undo 10 -y
  2. # Con el resultado:
  3. Complementos cargados:fastestmirror
  4. Undoing transaction 10, from Fri Mar 16 21:13:54 2018
  5.     Instalar dstat-0.7.2-12.el7.noarch @base
  6. Resolviendo dependencias
  7. --> Ejecutando prueba de transacción
  8. ---> Paquete dstat.noarch 0:0.7.2-12.el7 debe ser eliminado
  9. --> Resolución de dependencias finalizada
  10.  
  11. Dependencias resueltas
  12.  
  13. ===========================================================================================================================
  14.  Package                    Arquitectura                Versión                           Repositorio                Tamaño
  15. ===========================================================================================================================
  16. Eliminando:
  17.  dstat                      noarch                      0.7.2-12.el7                      @base                      752 k
  18.  
  19. Resumen de la transacción
  20. ===========================================================================================================================
  21. Eliminar  1 Paquete
  22.  
  23. Tamaño instalado: 752 k
  24. Downloading packages:
  25. Running transaction check
  26. Running transaction test
  27. Transaction test succeeded
  28. Running transaction
  29.   Eliminando    : dstat-0.7.2-12.el7.noarch                                                                            1/1
  30.   Comprobando   : dstat-0.7.2-12.el7.noarch                                                                            1/1
  31.  
  32. Eliminado(s):
  33.   dstat.noarch 0:0.7.2-12.el7
  34.  
  35. ¡Listo!

Podemos volver a ver el historial donde se mostrará el cambio realizado:

  1. sudo yum history
  2. #Con el resultado:
  3. Complementos cargados:product-id, search-disabled-repos, subscription-manager
  4. Complementos cargados:fastestmirror
  5. ID     | Registro de usuario      | Día y hora       | Acción(es)     | Modific
  6. -------------------------------------------------------------------------------
  7.     11 |   davidochobits        | 2018-03-16 21:17 | Erase          |    1
  8.     10 |   davidochobits        | 2018-03-16 21:13 | Install        |    1
  9.      9 |   davidochobits        | 2018-03-16 20:36 | I, U           |   64

Además, si nos arrepentimos de algún ‘undo’ podemos volver a un estado anterior, utilizando el parámetro ‘redo’, así:

  1. yum history redo 10 -y

Para elaborar el artículo me he servido de las siguientes fuentes:

Linux Today – Rollback an update on RHEL/CentOS – A simple guide
Rm-rf.es – Rollback de instalaciones y actualizaciones con yum history