Solucionar errores comunes de APT en VPS Ubuntu y Debian

3 min
Hosting VPS/VDS

Tarde o temprano, apt update en su VPS Linux Infrawire falla con un muro de texto rojo: una clave GPG ausente, un repositorio que ya no existe o un bloqueo que no desaparece. Cada error tiene una causa clara y una solución corta.

Esta guía repasa los problemas más frecuentes en Ubuntu 24.04 y Debian 12, de la solución menos invasiva a la más drástica.

📋 Requisitos previos

  • Un VPS con Ubuntu 24.04 o Debian 12
  • Acceso SSH como root (la IP y la contraseña root están en su área de cliente)
  • Nociones básicas de línea de comandos

1. Localice primero las fuentes

Antes de arreglar nada, sepa dónde se definen sus repositorios:

Bash
cat /etc/os-release cat /etc/apt/sources.list ls -l /etc/apt/sources.list.d/ apt update 2>&1 | grep -E '^(Err|W:|E:)'

En Ubuntu 24.04 los repositorios principales están en /etc/apt/sources.list.d/ubuntu.sources, en formato deb822 (archivos .sources). Debian 12 sigue usando el formato clásico de una línea en /etc/apt/sources.list, y ambos formatos conviven.

Bash
# Ejemplo de entrada deb822 (Ubuntu 24.04) Types: deb URIs: http://archive.ubuntu.com/ubuntu/ Suites: noble noble-updates noble-backports Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

2. Errores de bloqueo y dpkg interrumpido

El mensaje Could not get lock /var/lib/dpkg/lock-frontend significa que otro proceso está usando apt, muy a menudo unattended-upgrades justo después del arranque. Compruébelo antes de actuar:

Bash
ps aux | grep -E 'apt|dpkg|unattended' | grep -v grep lsof /var/lib/dpkg/lock-frontend

Si hay un proceso en marcha, espere unos minutos. Elimine un archivo de bloqueo solo si nada lo retiene (arriesgado si se equivoca) y repare después el estado interrumpido:

Bash
rm -f /var/lib/dpkg/lock-frontend /var/lib/dpkg/lock /var/cache/apt/archives/lock dpkg --configure -a apt --fix-broken install

El mensaje dpkg was interrupted, you must manually run 'dpkg --configure -a' se resuelve justamente con el primero de esos comandos.

3. NO_PUBKEY y claves GPG ausentes

El error The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ABCD1234 indica que un repositorio de terceros no tiene una clave de confianza. No use el obsoleto apt-key: guarde la clave en /etc/apt/keyrings/ y refiérala con signed-by.

Bash
install -d -m 0755 /etc/apt/keyrings curl -fsSL https://example.com/repo/key.gpg | gpg --dearmor -o /etc/apt/keyrings/example.gpg chmod 644 /etc/apt/keyrings/example.gpg echo 'deb [signed-by=/etc/apt/keyrings/example.gpg] https://example.com/repo stable main' > /etc/apt/sources.list.d/example.list apt update

Use la URL de la clave que figura en la documentación oficial del software e instale antes curl gnupg si faltan. Si el error afecta al propio archivo de Ubuntu o Debian, reinstale el paquete de claves: apt install --reinstall ubuntu-keyring o debian-archive-keyring.

4. Repositorios de terceros rotos

Un error 404 Not Found o does not have a Release file en un PPA o repositorio de un fabricante suele significar que ya no admite su versión. Desactívelo en lugar de borrarlo:

Bash
# Archivo .list clásico: renombrarlo mv /etc/apt/sources.list.d/broken.list /etc/apt/sources.list.d/broken.list.disabled # Archivo .sources deb822: añadir esta línea dentro del bloque Enabled: no

Vuelva a ejecutar apt update. El error desaparece y los paquetes ya instalados siguen funcionando.

5. Errores de reloj: Release file not valid yet

Release file for ... is not valid yet (invalid for another 3h 12min) significa que el reloj del sistema va por detrás de la marca de tiempo del repositorio. Compruebe y resincronice:

Bash
timedatectl timedatectl set-ntp true systemctl restart systemd-timesyncd

Si systemd-timesyncd no está instalado (algunas imágenes mínimas de Debian), use apt install -y chrony.

6. Versiones al final de su vida útil

Cuando una versión llega al fin de su vida útil, sus paquetes se mueven y apt update devuelve 404 o no longer has a Release file. Para una versión de Ubuntu que no es LTS, apunte las fuentes al archivo de versiones antiguas:

Bash
sed -i 's|http://archive.ubuntu.com/ubuntu|http://old-releases.ubuntu.com/ubuntu|g; s|http://security.ubuntu.com/ubuntu|http://old-releases.ubuntu.com/ubuntu|g' /etc/apt/sources.list /etc/apt/sources.list.d/*.sources 2>/dev/null apt update

Para un Debian antiguo, use http://archive.debian.org/debian y elimine la línea de seguridad. Considere un sistema EOL como solución provisional: ya no recibe correcciones de seguridad, así que planifique pasar a una versión con soporte.

7. Verificar

Bash
apt update apt upgrade --dry-run apt-get check

apt update debe terminar sin líneas Err ni E:, y apt-get check no debe mostrar nada.

🛠️ Solución de problemas

El bloqueo reaparece en cada intento: probablemente se esté ejecutando unattended-upgrades. Revise systemctl status unattended-upgrades y espere a que termine.

Conflicting values set for option Signed-By: el mismo repositorio está declarado dos veces con claves distintas. Búsquelo con grep -r example.com /etc/apt/ y conserve una sola entrada.

apt --fix-broken install falla en un script de paquete: lea las últimas líneas del error y pruebe dpkg --remove --force-remove-reinstreq PACKAGE seguido de una reinstalación normal.


✅ Su gestor de paquetes vuelve a estar sano: actualizaciones e instalaciones sin errores.

Mantente al día con las últimas ofertas, descuentos y promociones especiales.

Ver promociones

Utilizamos cookies

Utilizamos cookies analíticas para mejorar su experiencia en nuestro sitio. No vendemos datos a terceros. Más información en nuestra política de privacidad.