Estás preparando una actualización en Debian o Ubuntu y notas que un paquete ofrece una versión inesperada. Antes de ejecutar apt upgrade o forzar una versión específica, apt-cache policy muestra la versión instalada, la candidata y los repositorios que la ofrecen.
El objetivo es decidir con información visible. Vas a leer la configuración APT, comparar las versiones de un paquete, simular la instalación y detenerte si el repositorio o las dependencias no coinciden con el cambio previsto.
Leer los repositorios antes de mirar un paquete
Una versión candidata proviene de las fuentes APT activas. En Debian reciente, pueden ser descritas en /etc/apt/sources.list, en archivos .list o en archivos .sources ubicados en /etc/apt/sources.list.d/. Un repositorio de prueba, un espejo empresarial o una fuente añadida para un software pueden alterar la elección de APT.
grep -R --line-number --no-messages
-e '^deb ' -e '^Types:' -e '^URIs:' -e '^Suites:'
/etc/apt/sources.list /etc/apt/sources.list.d/
Revisa la URL, la suite de Debian o Ubuntu y el componente indicado. No añadas una fuente encontrada en un foro para obtener una versión más reciente. Si los archivos han cambiado desde la última actualización de los índices, ejecuta sudo apt update solo después de haber validado este perímetro.
Comparar la versión instalada, candidata y disponible
Selecciona un paquete que esté realmente presente en tus repositorios, por ejemplo curl. El siguiente comando no modifica nada. Muestra la versión instalada, la versión candidata y una tabla de prioridades por repositorio.
apt-cache policy curl
apt-cache madison curl
apt list --upgradable
En apt-cache policy, Installed se refiere a la versión ya instalada. Candidate es la que APT elegiría con su configuración actual. Las líneas de la tabla indican el origen y la prioridad de cada versión conocida. apt-cache madison ofrece una vista corta de las versiones y sus archivos. El último comando sirve para verificar si el paquete figura realmente entre las actualizaciones propuestas.
Una candidata diferente no prueba que una actualización sea apropiada. Una versión puede provenir de una suite de seguridad, un backport o un repositorio de terceros. Para confirmar el entorno antes de una intervención más amplia, la guía Versión de Debian: los comandos fiables para verificar antes de una actualización ayuda a revisar la distribución y su número de versión.
Simular la instalación antes de elegir una versión
Cuando la candidata parece coherente, pide primero a APT una simulación. La opción -s lista los paquetes a instalar, actualizar o eliminar sin escribir en el sistema.
sudo apt-get -s install curl
sudo apt-get -s install curl=VERSION_LEÍDA_EN_MADISON
Reemplaza VERSION_LEÍDA_EN_MADISON por una versión mostrada por tu propia máquina. La simulación debe seguir limitada al paquete previsto y a las dependencias esperadas. Si propone eliminar un paquete de producción, cambiar de suite de Debian o instalar una larga cadena inesperada, no ejecutes el comando real.
El comando real mantiene la misma sintaxis, sin -s. En un servidor, elegiría una ventana de mantenimiento cuando el paquete afecte a un servicio de red, una biblioteca utilizada por varias aplicaciones o el núcleo. La lista APT por sí sola no dice si se necesitará un reinicio o una prueba de aplicación.
Cuando la candidata no coincide con el cambio previsto
Evita corregir este caso con un apt install paquete=versión lanzado al azar. Toma la salida de apt-cache policy, identifica el repositorio que trae la candidata y verifica los archivos de preferencias APT si tu máquina los utiliza.
grep -R --line-number --no-messages . /etc/apt/preferences /etc/apt/preferences.d/
apt-cache policy curl
apt-cache showpkg curl
Una regla de pinning puede modificar la prioridad de un archivo. Un paquete en hold también permanece fuera de una actualización normal. El tema es distinto de leer una candidata, pero bloquear la actualización de un paquete Debian y luego levantar el hold explica cómo controlar este bloqueo sin confundir un hold con una preferencia APT.
Para un archivo .deb descargado localmente, opta mejor por apt install ./paquete.deb cuando los repositorios sigan accesibles. APT podrá resolver las dependencias. La guía Dpkg en Linux: instalar un paquete .deb sin bloquear APT detrás cubre este caso por separado.
apt-cache policy es un comando de lectura. Mantén esta etapa antes de cada cambio específico: repositorio legible, candidata identificada, simulación limpia y luego solo la instalación. Si el origen de la versión sigue ambiguo, corrige primero las fuentes o las preferencias APT.
La página del manual de Debian apt-cache(8) detalla los subcomandos y las prioridades mostradas por la política APT.