Introducción al control granular de paquetes
Durante la administración de servidores e instancias Ubuntu, surgen situaciones donde resulta imprescindible prevenir que una actualización automática sobreescriba una versión crítica o donde se requiere sanear dependencias huérfanas en el almacenamiento local. La herramienta de consola apt-mark constituye el mecanismo idóneo para fijar versiones en un estado estático (hold) y redefinir si un software debe catalogarse como instalado de forma automática o explícita. Mediante este laboratorio práctico en terminal, aprenderá tácticas seguras de mantenimiento preventivo para salvaguardar la estabilidad de sus servicios productivos.
Congelación de versiones críticas: uso de hold y showhold
Para disponer de un binario sobre el cual realizar las pruebas de bloqueo, procedemos a sincronizar los repositorios e instalar la herramienta curl ejecutando sudo apt-get update -qq && sudo apt-get install -y curl.

Al aplicar sudo apt-mark hold curl, el gestor marca el paquete como retenido; de este modo, rutinas globales como apt upgrade omitirán cualquier intento de reemplazarlo con compilaciones más recientes.
⚙️ [Parámetros fundamentales]
hold : Bloquea el paquete seleccionado para impedir su actualización en procesos automatizados o manuales.unhold : Remueve la restricción de retención, devolviendo al software su capacidad estándar de recibir actualizaciones.showhold : Muestra en consola el listado exhaustivo de todos los paquetes actualmente bloqueados en el entorno.auto : Asigna al paquete la etiqueta de componente dependiente instalado de manera no manual.manual : Declara el paquete como software introducido directamente por decisión del operador del sistema.showauto : Genera un reporte con todos aquellos paquetes que ingresaron como dependencias automáticas.showmanual : Enumera las aplicaciones y paquetes incorporados explícitamente por el administrador.

Para auditar qué elementos del sistema se hallan excluidos de las tareas de despliegue y actualización, se invoca la sentencia apt-mark showhold.
El resultado confirma de inmediato que curl quedó incorporado dentro del registro de elementos retenidos.

Reactivación del ciclo de actualizaciones mediante unhold
Cuando se decide incorporar parches o saltar a una rama más moderna de un software retenido, se libera su bloqueo ejecutando sudo apt-mark unhold curl.
La consola emitirá el mensaje de confirmación Canceled hold on curl., ratificando que el paquete vuelve a formar parte del flujo convencional de mantenimiento.

Una nueva consulta mediante apt-mark showhold permite corroborar que las listas de retención se encuentran desiertas.
Al devolver un buffer vacío, constatamos que el cerrojo sobre curl ha quedado formalmente cancelado en los metadatos de APT.

Modificación del estado de instalación: markauto frente a unmarkauto
Para experimentar con la reclasificación de dependencias y el control del ciclo de vida de los paquetes, incorporamos la utilidad jq mediante la instrucción sudo apt-get install -y jq.

La ejecución de sudo apt-mark markauto jq altera la naturaleza del registro del paquete, haciendo que el gestor APT lo trate como una biblioteca requerida por terceros en lugar de un software primordial instalado manualmente.
Esta reclasificación facilita que, en caso de eliminarse los paquetes que teóricamente dependan de él, comandos como apt autoremove lo limpien del sistema sin dejar residuos.

Para validar si el sistema reconoce la nueva clasificación de jq, se interroga la base de datos de paquetes con apt-mark showauto jq.
La salida refleja satisfactoriamente el nombre de la utilidad, confirmando que opera bajo la directiva de instalación automática (auto).

Si, por el contrario, nos interesa blindar el paquete frente a una eventual desinstalación fortuita al depurar dependencias, ejecutamos sudo apt-mark unmarkauto jq.
Este ajuste restablece la condición de instalación manual (manual), impidiendo que apt autoremove lo suprima aunque ningún otro programa lo demande expresamente.

Corroboramos esta reclasificación mediante el comando apt-mark showmanual jq.
Al devolverse jq como resultado, confirmamos que el paquete vuelve a residir de forma permanente entre las aplicaciones gestionadas por criterio del usuario.

Diagnóstico e inspección del catálogo de paquetes instalados
Para inspeccionar el inventario de software configurado intencionalmente por los usuarios de la máquina, podemos listar las primeras entradas mediante apt-mark showmanual | head -n 10.
Esta consulta permite visualizar utilidades del sistema base junto con paquetes agregados durante nuestras sesiones, tales como curl.

De forma análoga, la instrucción apt-mark showauto | head -n 10 expone el segmento inicial de dependencias arrastradas de manera accesoria para dar soporte a otros componentes.
Aquí se constata la presencia de librerías esenciales y servicios que conservan su etiqueta de instalación delegada.

Hemos explorado cómo gobernar de extremo a extremo las versiones y jerarquías de dependencias en distribuciones Ubuntu sirviéndonos del comando apt-mark.
Implementar estas verificaciones en sus flujos operativos le permitirá afianzar entornos de producción robustos, predecibles y libres de incidencias imprevistas durante tareas de mantenimiento.