Introducción

En caso de que necesites mantener una versión obsoleta o específica de un paquete deb por cualquier motivo, existen diferentes formas de retenerlo en distribuciones Linux derivadas de Debian.

En este artículo utilizaremos el comando dpkg para realizar las operaciones, aunque también pueden usarse herramientas como apt o dselect.

Retener un paquete (Hold)

Para poner un paquete en estado de retención (hold):

# echo "<nombre-del-paquete> hold" | dpkg --set-selections

Tras realizar esta operación, el paquete se mantendrá en la versión actual aunque existan nuevas versiones disponibles durante las actualizaciones del sistema.

Quitar la retención (Remove hold)

Para permitir que el paquete vuelva a actualizarse con normalidad:

# echo "<nombre-del-paquete> install" | dpkg --set-selections

Tras esta operación, el paquete se actualizará como cualquier otro de la lista.

Mostrar el estado

1. De todos los paquetes

# dpkg --get-selections
7zip                                            install
accountsservice                                 install
acl                                             install
adduser                                         install
adwaita-icon-theme                              install
aglfn                                           install
alsa-topology-conf                              install
alsa-ucm-conf                                   install
alsa-utils                                      install
...

2. De un solo paquete

# dpkg --get-selections <nombre-del-paquete>
# dpkg --get-selections zip
zip                                             install

Mostrar paquetes retenidos

Para listar únicamente los paquetes retenidos (hold):

# dpkg --get-selections | grep "\<hold$"
# dpkg --get-selections | grep "\<hold$"
lifeograph                                      hold