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.debdescargados/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 aapt-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
aptpara instalar desde repositorios → resuelve dependencias automáticamente. - Usa
dpkg -ipara instalar un.deblocal descargado manualmente. - Usa
dpkg -L,dpkg -Spara inspeccionar archivos de paquetes instalados. - Usa
dpkg-reconfigurepara 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