- Identificación de fallos de conectividad, resolución de DNS y configuración de firewalls.
- Gestión de repositorios mediante el cambio de servidores espejo y limpieza de la caché de APT.
- Actualización de llaves GPG y manejo de firmas digitales para repositorios de terceros.
- Resolución de conflictos de bloqueo de dpkg y optimización del espacio en disco.
Seguro que te ha pasado: abres la terminal con toda la ilusión de poner tu sistema al día, escribes el comando habitual y, de repente, la pantalla se llena de mensajes rojos que dicen Failed to fetch. Es un momento frustrante, sobre todo cuando parece que todo debería funcionar y el servidor se pone terco negándose a descargar los paquetes necesarios.
Este problema es más común de lo que parece y no siempre significa que tu ordenador esté roto. A veces es una tontería de la red, un servidor que se ha caído justo en ese momento o una configuración de seguridad que está bloqueando el paso. Vamos a desgranar paso a paso cómo atacar este error para que recuperes el control de tu gestor de paquetes sin romperte la cabeza.
Causas más habituales de los fallos en APT

Antes de lanzarnos a escribir comandos a lo loco, conviene saber a qué nos enfrentamos. Este error suele dispararse por problemas de resolución DNS, que es cuando tu PC no sabe traducir la dirección web del repositorio a una dirección IP real. También es muy frecuente que el servidor espejo (mirror) que estás usando esté saturado o fuera de servicio temporalmente.
Por otro lado, si usas máquinas virtuales en la nube como Azure, podrías tener un firewall o un equilibrador de carga que esté cortando la salida a internet en los puertos 80 y 443. No podemos olvidar los errores de GPG, que ocurren cuando las llaves de seguridad han caducado o no están instaladas, haciendo que Ubuntu rechace el repositorio por no considerarlo seguro.
Primeros auxilios: Verificaciones básicas

Lo primero es descartar que te hayas quedado sin internet. No te fíes solo del navegador; abre la terminal y haz un ping a una IP conocida como la 8.8.8.8. Si hay respuesta pero el comando apt sigue fallando, el problema es casi seguro el DNS. En ese caso, puedes intentar una solución rápida editando el archivo /etc/resolv.conf y añadiendo los DNS de Google o Cloudflare para forzar la resolución de nombres.
Si la conexión va sobrada, revisa que el reloj del sistema esté sincronizado. Parece una chorrada, pero si la fecha y hora están mal, los certificados SSL fallarán y el sistema bloqueará la descarga por seguridad. Usa el comando timedatectl set-ntp true para dejar que el sistema se sincronice solo.
Solucionando problemas de repositorios y espejos

Si el servidor oficial de Ubuntu te está dando guerra, lo mejor es cambiar el espejo. Puedes hacerlo desde la interfaz gráfica en Software y Actualizaciones seleccionando el servidor principal o el que mejor funcione en tu zona. Si prefieres la terminal, puedes usar un comando sed para sustituir archive.ubuntu.com por un mirror regional o uno más estable.
En ocasiones, el archivo sources.list se corrompe o tiene entradas duplicadas que crean conflictos. Si ves errores de «Malformed entry», abre el archivo con sudo nano y limpia cualquier línea que parezca escrita a medias o que esté repetida. Si la cosa está muy fea, lo más sano es hacer una copia de seguridad del archivo y crear uno nuevo desde cero con las líneas oficiales para tu versión de Ubuntu.
Luchando contra los errores de GPG y firmas

Cuando veas el temido mensaje NO_PUBKEY, significa que te falta la llave pública del repositorio. En versiones modernas de Ubuntu, ya no se recomienda usar apt-key porque es obsoleto. Lo ideal ahora es descargar la llave mediante curl y guardarla en la carpeta /usr/share/keyrings/, asegurándote de que en el archivo de fuentes se indique la ruta exacta con la opción signed-by.
Si estás usando distribuciones específicas como Kali Linux y te sale que la llave ha caducado, existe un comando rápido para importar la llave actualizada desde el archivo oficial de la distro. Esto es vital en sistemas de pentesting donde los paquetes cambian constantemente y las firmas deben estar al día para evitar riesgos de seguridad.
Trucos avanzados para casos rebeldes
Si nada de lo anterior funciona y sigues viendo errores de Hash Sum mismatch, es probable que tengas archivos corruptos en la caché. La solución es radical pero efectiva: borra todo el contenido de /var/lib/apt/lists/ y ejecuta un apt clean. Esto obliga al sistema a descargar toda la base de datos de paquetes desde cero, eliminando cualquier residuo problemático.
En entornos corporativos, el culpable suele ser un servidor proxy. Para que APT pueda atravesarlo, debes crear un archivo de configuración en /etc/apt/apt.conf.d/ donde especifiques la dirección del proxy y tus credenciales. Asimismo, si notas que el sistema intenta usar IPv6 y tu red no lo soporta bien, puedes desactivar IPv6 editando el archivo sysctl.conf para forzar el uso de IPv4.
Gestión de bloqueos y espacio en disco
Es muy común encontrarse con el error de que no se pudo obtener el bloqueo (lock). Esto pasa cuando hay otro proceso de actualización corriendo en segundo plano o si una instalación previa se cortó bruscamente. Si estás seguro de que no hay nada ejecutándose, puedes eliminar manualmente los archivos de bloqueo en /var/lib/dpkg/lock y /var/lib/apt/lists/lock para liberar el gestor.
Finalmente, no olvides echar un ojo al espacio disponible con el comando df -h. Si la partición raíz está llena, APT no podrá escribir los nuevos índices y lanzará errores genéricos. En estos casos, eliminar kernels antiguos o limpiar la carpeta de descargas suele ser la salvación para que el sistema vuelva a respirar.
Para mantener el sistema a raya, lo ideal es combinar una buena higiene de los repositorios con actualizaciones frecuentes y el uso de espejos fiables. La clave está en identificar si el fallo es de red, de seguridad por llaves GPG o de archivos corruptos en la caché, aplicando la limpieza de listas y la verificación de DNS como primer escudo contra estos fallos.
Índice