El problema

Mientras actualizaba un sistema Debian corrí:

apt-get update
apt-get upgrade

Y al final obtuve esto:

The following packages have been kept back:
  linux-image-amd64 linux-headers-amd64
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

Los paquetes no se actualizaron. Volver a correr apt-get upgrade producía el mismo resultado.

Por qué ocurre

apt upgrade es intencionalmente conservador. No instala paquetes nuevos ni elimina los existentes para satisfacer dependencias — solo actualiza los paquetes que pueden resolverse sin tocar nada más.

Cuando una actualización introduce nuevas dependencias o requiere eliminar un paquete conflictivo, apt upgrade retiene el paquete en lugar de hacer esos cambios automáticamente.

Es más común con:

  • Actualizaciones del kernel (que instalan un nuevo paquete linux-image-* junto al anterior)
  • Paquetes cuyo árbol de dependencias cambió entre versiones
  • Transiciones entre versiones mayores de bibliotecas

La solución

apt-get dist-upgrade

O con el comando moderno apt (Debian 8+ / Ubuntu 14.04+):

apt full-upgrade

Ambos hacen lo mismo: permiten resolver dependencias instalando paquetes nuevos o eliminando los obsoletos. Los paquetes retenidos se actualizan.

Antes de correrlo — verificá qué va a cambiar

dist-upgrade puede ser más disruptivo que una actualización normal. Antes de confirmar, revisá qué planea hacer:

apt-get dist-upgrade --dry-run

Fijate en la línea de resumen:

5 upgraded, 2 newly installed, 1 to remove and 0 not upgraded.

Si ves eliminaciones inesperadas de paquetes que necesitás, investigá antes de proceder. Para actualizaciones de kernel de rutina y transiciones de bibliotecas en un sistema bien mantenido, es seguro confirmar.

Ver qué está retenido

Para listar los paquetes con actualizaciones disponibles:

apt list --upgradable

Para actualizar un solo paquete retenido sin correr dist-upgrade completo:

apt-get install nombre-paquete

Especificar el nombre del paquete directamente fuerza a apt a resolver sus nuevas dependencias.

upgrade vs full-upgrade — cuándo usar cada uno

Comando Comportamiento
apt upgrade Seguro, nunca elimina ni instala paquetes nuevos
apt full-upgrade Resuelve dependencias completamente, puede instalar o eliminar paquetes

Para un escritorio o servidor que mantenés regularmente, correr full-upgrade es el camino normal. Usá upgrade solo cuando querés aplicar parches de seguridad no disruptivos sin tocar grafos de dependencias.

  • Creado: 16 de junio de 2007
  • Última edición: 7 de julio de 2026