Gestión de paquetes con APT en profundidad

Cómo funciona APT internamente

APT mantiene una caché local de metadatos con la lista de todos los paquetes disponibles en los repositorios configurados. Cuando ejecutas apt update, APT descarga esos metadatos y los almacena en /var/lib/apt/lists/. Cuando instalas un paquete, APT calcula el árbol de dependencias, descarga los .deb necesarios a /var/cache/apt/archives/ y los pasa a dpkg para la instalación real.

La caché de APT

  • /var/lib/apt/lists/ → metadatos de repositorios (índices de paquetes)
  • /var/cache/apt/archives/ → paquetes .deb descargados
  • /var/lib/dpkg/status → estado de todos los paquetes instalados

# apt clean          # elimina todos los .deb de la caché de descargas
# apt autoclean      # elimina solo los .deb obsoletos (sin versión actual en repos)
          

update vs upgrade vs full-upgrade

  • apt update → descarga los índices de repositorios. No instala ni actualiza nada.
  • apt upgrade → actualiza los paquetes instalados. Nunca elimina paquetes ni instala nuevas dependencias que requieran eliminar otros.
  • apt full-upgrade (equivale a apt-get dist-upgrade) → puede instalar nuevas dependencias y eliminar paquetes en conflicto para completar la actualización.

# apt update && apt upgrade -y
# apt update && apt full-upgrade -y
          

Gestión de dependencias

APT resuelve automáticamente las dependencias. Para inspeccionarlas manualmente:


$ apt-cache depends nginx        # dependencias directas de nginx
$ apt-cache rdepends nginx       # qué paquetes dependen de nginx
$ apt-cache showpkg nginx        # información completa de dependencias
          

Para ver qué se instalará sin instalar aún:


# apt install --simulate nginx   # simulación sin cambios reales
# apt install -s nginx           # forma abreviada
          

apt-cache — Consultas avanzadas


$ apt-cache search "web server"          # buscar por descripción
$ apt-cache show nginx                   # ficha completa del paquete
$ apt-cache showsrc nginx                # información del paquete fuente
$ apt-cache policy nginx                 # versión instalada vs disponible y prioridad
$ apt-cache stats                        # estadísticas de la caché
          

La salida de apt-cache policy es especialmente útil:


$ apt-cache policy nginx
nginx:
  Installed: 1.24.0-2
  Candidate: 1.24.0-2
  Version table:
 *** 1.24.0-2 500
        500 http://deb.debian.org/debian bookworm/main amd64 Packages
        100 /var/lib/dpkg/status
          

dpkg vs apt: cuándo usar cada uno

  • Usa apt para instalar desde repositorios → resuelve dependencias automáticamente.
  • Usa dpkg -i para instalar un .deb local descargado manualmente.
  • Usa dpkg -L, dpkg -S para inspeccionar archivos de paquetes instalados.
  • Usa dpkg-reconfigure para reejecutar el asistente de configuración postinstalación.

Si dpkg -i falla por dependencias no satisfechas, puedes resolverlas ejecutando después:


# apt install -f    # instala dependencias pendientes y completa la configuración
          

APT abstrae la complejidad de la resolución de dependencias; dpkg es la capa inferior que ejecuta la instalación real sobre el sistema de archivos.

Gestión de repositorios: sources.list, PPAs y claves GPG

Índice de la sección

Índice del curso