Búsqueda de sitios web

Cómo deshabilitar/bloquear o poner en lista negra las actualizaciones de paquetes usando la herramienta Apt


APT significa que Advanced Packaging Tool es otro administrador de paquetes que se encuentra en los sistemas basados en Linux. Inicialmente diseñado como una interfaz para dpkg para trabajar con paquetes .deb, apt ha logrado mostrar su visibilidad en Mac OS, Open Solaris, etc.

Si desea aprender y dominar los comandos APT y DPKG para administrar la administración de paquetes de Debian, utilice nuestros artículos detallados que cubrirán más de 30+ . ejemplos de ambas herramientas.

En este artículo veremos varias técnicas para deshabilitar/bloquear paquetes desde la instalación, actualización y eliminación en Debian Linux y sus derivados, como Ubuntu y Linux Mint.

1. Deshabilitar/Bloquear paquete usando 'apt-mark' con la opción de mantener/desbloquear

El comando apt-mark marcará o desmarcará un paquete de software como instalado automáticamente y se usa con la opción hold o unhold.

  1. hold: esta opción se utiliza para marcar un paquete como retenido, lo que bloqueará la instalación, actualización o eliminación del paquete.
  2. unhold: esta opción se utiliza para eliminar una retención previamente establecida en un paquete y permitir instalar, actualizar y eliminar el paquete.

Por ejemplo, para hacer que un paquete diga apache2 no esté disponible para instalación, actualización o desinstalación, puede usar el siguiente comando en la terminal con privilegios de root:

apt-mark hold apache2

Para que este paquete esté disponible para su actualización, simplemente reemplace 'hold' con 'unhold'.

apt-mark unhold apache2

Bloqueo de actualizaciones de paquetes mediante el archivo de preferencias APT

Otra forma de bloquear las actualizaciones de un paquete específico es agregar su entrada en /etc/apt/preferences o /etc/apt/preferences.d/official-package-repositories.pref archivo. Este archivo tiene la responsabilidad de actualizar o bloquear ciertas actualizaciones de paquetes según la prioridad especificada por el usuario.

Para bloquear el paquete, sólo necesita ingresar su nombre, característica adicional y a qué prioridad desea llevarlo. Aquí, la prioridad < 1 bloquearía el paquete.

Para bloquear cualquier paquete, simplemente ingrese sus detalles en el archivo /etc/apt/preferences así:

Package: <package-name> (Here, '*' means all packages)
Pin: release *
Pin-Priority: <less than 0>

Por ejemplo, para bloquear actualizaciones para el paquete apache2, agregue la entrada como se muestra:

Package: apache2
Pin: release o=Ubuntu
Pin-Priority: 1

Podemos usar otras opciones con la palabra clave de liberación para identificar mejor el paquete al que estamos aplicando la Prioridad de PIN. Esas palabras clave son:

  1. a -> Archivo
  2. c -> Componente
  3. o -> Origen
  4. l -> Etiqueta
  5. n -> Arquitectura

como :

Pin: release o=Debian,a=Experimental

Significaría extraer el paquete indicado del archivo experimental del paquete Debian.

Incluya en la lista negra una actualización de paquete usando el archivo APT Autoremove

Otra forma de incluir un paquete en la lista negra de la instalación es actualizar su entrada en uno de los archivos contenidos en el directorio /etc/apt/apt.conf.d/, que es 01autoremove.

El archivo de muestra se muestra a continuación:

APT
{
  NeverAutoRemove
  {
        "^firmware-linux.*";
        "^linux-firmware$";
  };

  VersionedKernelPackages
  {
        # linux kernels
        "linux-image";
        "linux-headers";
        "linux-image-extra";
        "linux-signed-image";
        # kfreebsd kernels
        "kfreebsd-image";
        "kfreebsd-headers";
        # hurd kernels
        "gnumach-image";
        # (out-of-tree) modules
        ".*-modules";
        ".*-kernel";
        "linux-backports-modules-.*";
        # tools
        "linux-tools";
  };

  Never-MarkAuto-Sections
  {
        "metapackages";
        "restricted/metapackages";
        "universe/metapackages";
        "multiverse/metapackages";
        "oldlibs";
        "restricted/oldlibs";
        "universe/oldlibs";
        "multiverse/oldlibs";
  };
};

Ahora, para incluir cualquier paquete en la lista negra, solo necesita ingresar su nombre en Never-MarkAuto-Sections. Simplemente ingrese el nombre del paquete al final en Never-MarkAuto-Section y guarde y cierre el archivo. Esto bloquearía apt para buscar más actualizaciones de ese paquete.

Por ejemplo, para incluir en la lista negra un paquete para que no se actualice, agregue la entrada como se muestra:

Never-MarkAuto-Sections
  {
        "metapackages";
        "restricted/metapackages";
        "universe/metapackages";
        "multiverse/metapackages";
        "oldlibs";
        "restricted/oldlibs";
        "universe/oldlibs";
        "multiverse/oldlibs";
        "apache2*";
  };
};

Selección de paquete personalizado para actualización

Otra alternativa para esto es elegir qué deseas actualizar. La herramienta apt le brinda libertad para elegir qué desea actualizar, pero para ello debe tener conocimiento sobre todos los paquetes que están disponibles para actualización.

Para tal cosa, el siguiente conjunto de comandos puede resultar útil:

a. Para enumerar qué paquetes tienen actualizaciones pendientes.

apt-get -u -V upgrade

b. Para instalar sólo paquetes selectivos.

apt-get --only-upgrade install <package-name>

Conclusión

En este artículo, explicamos algunas formas de deshabilitar/bloquear o incluir en la lista negra las actualizaciones de paquetes usando la forma APT. Si conoce alguna otra forma preferida, háganoslo saber a través de comentarios o si estaba buscando el comando yum para deshabilitar/bloquear la actualización del paquete, lea el siguiente artículo.