Evitar la actualización de un paquete

Aunque esto de evitar la actualización de una paquete te pueda parecer extraño, no lo es, ni mucho menos. Esto a pesar de nuestra ansia por tener lo último. Sin embargo, en ocasiones, puedes no querer actualizar a la última versión de un determinado paquete,por el simple hecho de que los desarrolladores han decidido eliminar una característica, que para ti es imprescindible. También puede suceder que sepas, que esa nueva versión es incompatible, con tu hardware o el software que tienes instalado. O simplemente por una razón de estabilidad de tu sistema. En cualquiera de estos casos vas a querer evitar la actualización de un paquete, y en este artículo te comento algunas opciones, para, precisamente, evitar la actualización de un paquete.

Evitar la actualización de un paquete

Evitar la actualización de un paquete

Mas razones

Se me ocurre un ejemplo bastante claro, sobre lo interesante, o incluso necesario, que te puede resultar, esto de evitar la actualización de un paquete. Supón el caso, de que tienes una servidor, ya sea grande o una pequeña Raspberry, a la que solo tienes conexión vía VPN. ¿Que sucede si los paquetes responsables de tu cliente VPN se actualizan y pierdes la comunicación? Este es una razón clara de porque evitar la actualización de un paquete.

Herramientas para evitar la actualización de un paquete

Existen diferentes herramientas y opciones que te van a permitir evitar la actualización de un paquete.

Cuando instalas un determinado paquete en tu equipo, este paquete se marca como instalado manualmente. Sin embargo, si al instalar ese paquete, se instalan otros paquetes, necesarios para funcionar tu aplicación o el paquete principal, estos paquetes se marcan como instalados automáticamente. De esta manera, cuando desinstalas el paquete principal, en ocasiones, verás un mensaje que te dice, que algunos paquetes instalados de forma automática ya no son necesarios.

apt-mark

apt-mark esta herramienta te va a permitir no solo ver determinadas configuraciones para cada paquete, sino también, modificar esas configuraciones. Por supuesto, entre estas configuraciones encontrarás la opción para evitar la actualización de un paquete.

Instalación automática o manual

Lo primero que te permite hacer apt-mark es marcar los paquetes para definirlos como instalación automática o manual. Así, como te indicaba anteriormente, cuando un paquete es marcado como auto, se desinstalará cuando no haya ningún otro paquete que lo requiera. Mientras que si el paquete se marca como manual, aunque no se necesite por ningún otro paquete no se desinstalará.

Esto es especialmente interesante, o al menos, lo es para mi, cuando estoy desarrollando alguna aplicación que necesita de librerías externas. Al instalarlas de forma manual, se marcan con esta etiqueta, de forma, que aunque no se desisntalan.

Para marcar un paquete como automático o manual, simplemente tienes que ejecutar la siguiente instrucción en un terminal,

  • Para marcarlo como manual,
sudo apt-mark manual <nombre-del-paquete>
  • Para marcarlo como automático,
sudo apt-mark auto <nombre-del-paquete>

Por otro lado, si quiers ver un listado de paquetes marcado como manual o como automático, las instrucciones a ejecutar son las siguientes,

  • Para ver los paquetes marcados como de instalacón manual,
apt-mark showmanual
  • Para ver los paquetes marcados como de instlación automática
apr-mark showauto
Evitar la actualización de un paquete

Ahora, si lo que te interesa es evitar la actualización de un paquete, la herramienta que tienes que utilizar sigue siendo apt-mark, pero en este caso las opciones que tienes que considerar son otras.

Así para marcar un paquete para que no se instale, actualice o elimine de forma automática, tienes que ejecutar la siguiente instrucción,

sudo apt-mark hold <nombre-del-paquete>

Por contra, si lo que quieres es permitir la actualización de un paquete que previamente habías marcado, tan solo tendrás que ejecutar la siguiente instrucción,

sudo apt-mark unhold <nombre-del-paquete>

Por último, si lo que quieres es ver los paquetes que están marcados como hold, entonces, lo que tendrás que hacer es ejecutar la instrucción,

apt-mark showhold

dpkg

apt-mark no es la única herramienta que tienes al alcance de tus dedos para marcar un paquete para que no se actualice. También puedes utilizar dpkg para estos menesteres. Así, si quieres marcar un paquete como hold, tienes que ejecutar la siguieente instrucción en un terminal,

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

Mientras que si lo que quieres hacer es quitar esa marca, tendrás que ejecutar esta otra instrucción,

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

Ahora bien, si lo que quiers ver es el estado de los paquetes la instrucción a ejecutar es,

dpkg --get-selections

Mientras que si lo que quieres hacer es ver solo el estado de uno de los paquetes, siempre puedes utilizar alguno de las opciones que tienes en el tutorial sobre el terminal, en particular del capítulo dedicado a filtros de texto. O simplemente, ejecutar la siguiente instrucción,

dpkg --get-selections | grep "<nombre-del-paquete>"

Conclusión

Como ves, esto de gestionar si un paquete es instalable o actualizable es algo realmente sencillo, con cualquiera de las opciones que has visto en este artículo. Pero sobre todo, tienes que tenerlo presente, si quieres evitar alguna sorpresa en la actualización de una dependencia sobre la que estás trabajando, o que te olvides de ello.


Imagen de portada de Scott Rodgerson on Unsplash

Deja un comentario

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