A veces es necesario mantener una versión específica de un paquete Debian, después de un incidente de aplicación o mientras se verifica una actualización en una máquina de prueba. apt-mark hold bloquea los cambios automáticos en este paquete. También bloquea su eliminación.
Úselo para una excepción identificada, con un motivo y una fecha de revisión. Dejar un paquete de seguridad bloqueado durante meses finalmente crea un ángulo muerto en las actualizaciones.

Identificar el paquete y la versión instalada
Comience verificando el nombre exacto del paquete. Una búsqueda en los repositorios no siempre indica lo que realmente está instalado en el servidor.
dpkg-query -W -f='${Package} ${Version}n' nombre-del-paquete
apt-cache policy nombre-del-paquete
El primer comando muestra la versión local. El segundo compara esta versión con los candidatos conocidos por APT. Si el paquete está vinculado a un servicio, también anote el síntoma y la versión que funciona antes de bloquearlo.
Un hold no reemplaza la comprensión de una dependencia. Si bloquea openssl, linux-image o una biblioteca utilizada por múltiples aplicaciones, observe qué cambios quería realizar la próxima actualización antes de congelar el paquete.
Bloquear la actualización con apt-mark hold
El comando requiere derechos de administrador. Reemplace nombre-del-paquete por el nombre registrado en el paso anterior.
sudo apt-mark hold nombre-del-paquete
sudo apt-mark showhold
showhold debe mostrar el paquete. APT respeta posteriormente esta marcación durante las operaciones habituales de actualización. Sin embargo, puede controlar lo que haría antes de aceptar una actualización:
sudo apt update
apt list --upgradable
sudo apt-get -s upgrade
La opción -s simula la operación. No descarga ni instala ningún paquete. Verifique que el paquete bloqueado permanezca en su versión esperada y que las dependencias no empujen a APT hacia una situación inconsistente.
No confundir hold y paquete instalado manualmente
apt-mark manual impide principalmente la auto-eliminación de una dependencia. No bloquea su actualización. En cambio, apt-mark hold modifica la selección de dpkg del paquete para evitar su instalación, actualización o eliminación automática.
Puede verificar esta selección con dpkg:
dpkg --get-selections nombre-del-paquete
dpkg --get-selections | grep ' hold$'
Esta distinción evita una falsa sensación de seguridad. Un paquete marcado como manual puede pasar a una nueva versión durante apt upgrade.
Levantar el hold después de la prueba
Cuando el parche se valida en una máquina de prueba, retire el bloqueo y vuelva a verificar la lista. No inicie una actualización global solo para desbloquear un solo paquete.
sudo apt-mark unhold nombre-del-paquete
sudo apt-mark showhold
sudo apt install nombre-del-paquete
El último comando se dirige únicamente al paquete en cuestión. Revise los paquetes adicionales propuestos por APT antes de confirmar. Para un paquete sensible, reinicie luego el servicio afectado y verifique sus registros. La página del manual apt-mark de Debian también detalla las selecciones hold, install, remove y purge.
Si el hold se había impuesto después de una actualización fallida, mantenga en su ticket o documentación: el paquete, la versión congelada, la razón, la fecha de la prueba y la condición que permite el desbloqueo. Este rastro evita que otro administrador elimine el hold sin saber por qué existía.
¿Cuándo se debe retirar un paquete de la lista?
Revise los holds en cada ciclo de mantenimiento. Un bloqueo temporal puede volverse peligroso cuando una actualización corrige una vulnerabilidad o una incompatibilidad de dependencias. Verifique los anuncios de Debian o del proveedor del software, pruebe la nueva versión fuera de producción y luego use apt-mark unhold tan pronto como el problema inicial se haya resuelto.
Para instalar un paquete .deb local y reparar las dependencias adecuadamente, consulte también nuestra guía sobre dpkg y APT. Si automatiza los parches de seguridad, el artículo sobre unattended-upgrades en Debian explica las verificaciones que se deben realizar antes de dejar que la tarea funcione sola.