Cómo hacer un «downgrade» de un paquete en Arch Linux

Publicado por pico.dev el , actualizado el .
gnu-linux blog-stack planeta-linux
Comentarios

Arch Linux

Arch Linux es un distribución rolling release en la que los paquetes son actualizados en cuanto sale una nueva versión. Esto tiene la ventaja de que siempre tendremos el sistema actualizado con las versiones más recientes de los programas, en los que se van añadiendo nuevas características y corrigiendo errores de seguridad y funcionales. Sin embargo, en algún momento nos puede ocurrir que una actualización de algún paquete nos introduzca algún error, en este caso podemos hacer una desactualización de paquete y volver a una versión estable.

No es habitual que esto ocurra pero puede darse el caso y antes de hacer una desactualización es recomendable buscar en los foros de arch linux una respuesta con una alternativa mejor. En todo este tiempo como usuario de Arch Linux, más de 5 años, los downgrades que he tenido que hacer han sido dos, uno para el paquete de subversion y el que voy a comentar. El último caso ha sido para el paquete de networkmanager al actualizarse a la versión 1.0.0-1 desde la 0.9.10.0-4. El problema que me ocasionaba era varios intentos de conexión y desconexión tanto de la red cableada como de la wifi, después de varios intentos seguidos y menos de un minuto conseguía conectarse a la red correctamente pero era un poco molesto. En los foros de arch linux hay varios mensajes de otros usuarios con el mismo problema I, II y III, donde se comenta algunas alternativas, una de ellas la desactualización del paquete. He de decir que en otro equipo no he tenido ningún problema con la actualización.

El proceso de downgrade no tiene mucha complicación, basta con lanzar el comando, la dificultad está en conocer si también hay que desactaulizar alguna dependencia (libnm-gtk y libnm-glib):

Para hacer una desactualización deberemos tener la versión del paquete a la que queramos hacer un downgrade, si no hemos hecho una limpieza de la caché de los paquetes no usados (con pacman -Sc) lo tendremos en en el directorio /var/cache/pacman/pkg/. Si hemos hecho la limpieza de la caché y no dispones del paquete hay que buscar en algún mirror menos actualizado la versión del paquete desactualizado, también podemos usar Arch Rollback Machine (ARM) que va almacenando instantáneas de los repositorios durante un tiempo, usando los varios enlaces de ARM podemos encontrar la versión desactualizada del paquete que queramos como el caso de networkmanager. Para evitar tener que buscar y descargar manualmente los paquetes de ARM lo que hago es mantener hasta la siguiente actualización los paquetes instalados en la caché cuando ya he comprobado que después de una actualización todo funciona.

Si no queremos que un paquete sea actualizado en la siguiente actualización del sistema que hagamos deberemos añadirlo a la lista IgnorePkg del archivo /etc/pacman.conf.

No es recomendable mantener muchos paquetes desactualizados y en la lista de IgnorePkg ya que estos pueden tener dependencias sobre paquetes también desactualizados, solo debe ser empleado para casos puntuales.

Yo apoyo al software libre