Apt-mark: Excluir paquetes en una actualización en Ubuntu

Hoy vamos a ver como excluir de una actualización uno o varios paquetes, en un sistema Ubuntu 18.04, mediante la herramienta apt-mark

Excluir paquetes en una actualización en Ubuntu mediante apt-mark

Se me ocurren muchos escenarios en los que sería necesarios excluir una serie de paquetes de la actualización general del sistema operativo. Por ejemplo, si no utilizamos la última versión de PHP en el caso de un servidor web, o no queremos realizar una subida de versión del “engine” de Docker. En otros sistemas con paquetería RPM, es bastante sencillo, mediante el parámetro “exclude” pero en Ubuntu no lo tenía claro.

Y aquí es donde entra en escena apt-mark, que nos permite “marcar” un programa o paquete para que no reciba actualizaciones. Con él también podemos indicar que un paquete se actualice de manera manual o automática, pero de eso quizás hablemos otro día.

La mejor manera de decir es hacer. Hoy mismo al realizar el “apt upgrade” en mi laptop o portátil, me han aparecido un buen puñado de actualizaciones. Entre ellas está el paquete de “openssl” y a modo de test, lo vamos a marcar para que no se actualice, esto lo haremos así:

  1. sudo apk-mark hold openssl

Quedando así:

  1. davidochobits@hpenvyi7:/etc/apt/sources.list.d$ sudo apt-mark hold openssl
  2. openssl fijado como retenido.

Además podemos listar todos los paquetes marcados de esta manera, utilizando el parámetro “showhold” Tal como sigue:

  1. davidochobits@hpenvyi7:/etc/apt/sources.list.d$ apt-mark showhold
  2. openssl

Para comprobar que efectivamente el paquete no se va a actualizar:

Si queremos, volver a marcarlo como disponible para actualizar, sería así:

  1. sudo apk-mark unhold openssl

Esta herramienta tiene muchas más posibilidades, os invito a conocerlas:

manpages.ubuntu.com – Apt-mark

Fuentes consultadas:

Askubuntu.com – Exclude packages from apt-get upgrade

Computerhope.com – Linux apt-mark command