Un paquete VPN que informa Installed: (none) no falta; simplemente no está instalado. La línea que decide si puede instalarlo es Candidate, que APT deriva de los índices, el nombre del suite, la arquitectura y cualquier regla de fijación vigente. La mayoría de los informes de un paquete VPN desaparecido resultan ser un problema de candidato y no un problema de empaquetado. Lea ambas líneas antes de tocar una sola entrada de fuentes.

Compruebo primero el candidato porque cuesta un comando y descarta la mitad de las suposiciones habituales.

Qué le dice la salida de apt-cache policy

apt-cache policy lee la caché local de paquetes, no la red. Imprime la versión instalada, la versión candidata y una tabla de cada índice que ofrece el paquete con la prioridad asociada.

apt-cache policy openvpn
apt-cache madison openvpn
apt list -a network-manager-openvpn

El candidato es la versión que APT elegiría ahora mismo. madison lista qué ofrece cada fuente con su prioridad, y así es como se detecta un paquete que existe en un índice pero pierde la competición de fijación. El manual de apt-cache documenta ambos como lecturas de caché, así que ninguno de los dos demuestra que el espejo sea accesible en este momento.

Si la línea del candidato está vacía o dice (none), nada en las fuentes configuradas es elegible para este sistema tal como está configurado.

Cuatro razones por las que desaparece un candidato

En la práctica la causa es casi siempre una de cuatro cosas, y cada una tiene una solución distinta.

El nombre del suite en sus fuentes debe coincidir con la distribución para la que se construyó el paquete. Un sistema Debian bookworm apuntado a un espejo trixie, o una versión de Ubuntu renombrada en un archivo sources.list.d durante una actualización, no resuelve nada para paquetes que solo existen en el otro suite. Compare lsb_release -cs con el campo suite de cada entrada.

APT solo ve paquetes construidos para las arquitecturas que dpkg conoce. Un contenedor de 32 bits, una imagen arm64 o una instalación en Raspberry Pi que pide un paquete que solo se distribuye para amd64 obtienen un candidato vacío en lugar de un mensaje de error. dpkg --print-architecture y dpkg --print-foreign-architectures le dicen en qué conjunto está realmente.

Los componentes también importan. Un paquete en contrib o non-free es invisible cuando solo main está habilitado, y el universe de Ubuntu se comporta igual. El índice existe y el paquete está en él; simplemente su lista de componentes habilitados no lo incluye.

La fijación es la silenciosa. Un archivo en /etc/apt/preferences.d puede limitar un paquete por debajo del umbral de instalación, y entonces un candidato perfectamente bueno desaparece de la salida mientras el índice sigue listándolo. Como policy imprime las prioridades junto a cada fuente, un paquete en el que cada fuente lleva un número de fijación bajo es la pista.

Los índices obsoletos parecen paquetes que faltan

La caché es una instantánea. Si el último apt update falló en un índice, las consultas siguen respondiendo desde la copia más antigua, y el paquete que espera puede no estar en esa copia.

apt update imprime errores por índice, así que léalos en lugar de desplazarse directamente a la última línea.

Una actualización que falla por un error de firma, un archivo release caducado o un espejo inaccesible deja el índice anterior en su sitio. Es un diseño sensato, porque conserva una caché funcional cuando un espejo cae brevemente. El efecto secundario es que una búsqueda puede tener éxito mientras el repositorio está desconectado. También significa que la ausencia de un paquete no demuestra nada hasta que sepa cuándo se obtuvo el índice por última vez. Compruebe las fechas de los archivos en /var/lib/apt/lists antes de culpar al nombre del paquete.

Nombre el paquete que realmente necesita

OpenVPN es un demonio, y las piezas que la gente suele querer son paquetes separados.

El motor, el complemento de NetworkManager y el editor de escritorio son tres paquetes con tres nombres, y el complemento tiene una variante GTK cuyo nombre difiere entre distribuciones. apt-cache search --names-only openvpn hace coincidir nombres y nombres proporcionados en lugar de descripciones, que es lo que quiere cuando sabe aproximadamente cómo se llama la cosa.

Si el nombre es realmente desconocido, busque una vez en las descripciones y luego vuelva a los nombres exactos. No añada un sufijo -gui tomado de otra distribución y concluya que el paquete ya no existe.

Cambie las fuentes al final y luego verifique la transacción

Añadir un repositorio cambia quién suministra sus actualizaciones, así que pertenece al final de la investigación, no al principio.

Antes, confirme versión, arquitectura, componente y estado de fijación. Anote cuáles de los cuatro comprobó, para que la siguiente persona no repita el barrido. Si los cuatro son correctos y el candidato sigue faltando, la conclusión honesta es que esta versión no distribuye ese paquete. Las opciones restantes son un backport, un paquete de proveedor o una versión compatible distinta, y cada una es una elección deliberada y no una conjetura.

Cuando el candidato aparezca, simule antes de confirmar: apt-get install --simulate con el nombre del paquete muestra qué se traería y qué se eliminaría. La disponibilidad del paquete, la instalación y un túnel funcional siguen siendo tres etapas separadas, y el túnel aún necesita su perfil, credenciales, rutas y DNS antes de llevar tráfico.

Artículos relacionados