Sistemas de paquetes Debian: dpkg y apt
Introducción
En las distribuciones basadas en Debian (Debian, Ubuntu, Linux Mint…) la gestión de paquetes se articula en
dos capas. La capa baja es dpkg, que opera directamente sobre ficheros .deb sin
resolver dependencias. La capa alta es APT (Advanced Package Tool), que descarga
paquetes de repositorios y resuelve automáticamente las dependencias antes de llamar a dpkg.
dpkg — Gestión a bajo nivel
dpkg instala, elimina e inspecciona paquetes .deb locales. No descarga nada de internet
ni resuelve dependencias de repositorios.
Instalar un paquete local:
# dpkg -i paquete.deb
Eliminar un paquete (conserva configuración):
# dpkg -r nombre-paquete
Eliminar un paquete y su configuración (purge):
# dpkg -P nombre-paquete
Consultas frecuentes:
$ dpkg -l # listar todos los paquetes instalados
$ dpkg -l nginx # estado de un paquete concreto
$ dpkg -L nginx # archivos instalados por un paquete
$ dpkg -S /usr/sbin/nginx # a qué paquete pertenece un archivo
$ dpkg -c paquete.deb # listar contenido de un .deb sin instalar
$ dpkg -I paquete.deb # mostrar metadatos de un .deb
Estados en la salida de dpkg -l:
ii→ instalado correctamenterc→ eliminado pero con ficheros de configuraciónun→ desconocido / no instalado
Reconfigurar un paquete instalado:
# dpkg-reconfigure locales
# dpkg-reconfigure tzdata
apt — Gestión a alto nivel
apt es la herramienta de usuario recomendada desde Debian 8 / Ubuntu 16.04. Combina las funciones de
apt-get y apt-cache con una salida más legible y barra de progreso.
Operaciones básicas:
# apt update # actualizar la lista de paquetes disponibles
# apt upgrade # actualizar paquetes instalados
# apt install nginx # instalar un paquete
# apt remove nginx # desinstalar (conserva configuración)
# apt purge nginx # desinstalar y borrar configuración
# apt autoremove # eliminar dependencias huérfanas
Búsqueda e información:
$ apt search nginx # buscar paquetes por nombre o descripción
$ apt show nginx # mostrar información detallada de un paquete
$ apt list --installed # listar paquetes instalados
$ apt list --upgradable # listar paquetes con actualización disponible
apt-get y apt-cache — Las herramientas clásicas
apt-get y apt-cache son las herramientas originales, adecuadas para scripts ya que su
salida no cambia entre versiones. apt es preferible en uso interactivo.
# apt-get update
# apt-get install nginx
# apt-get remove nginx
# apt-get dist-upgrade # actualización completa con resolución de conflictos
$ apt-cache search nginx
$ apt-cache show nginx
$ apt-cache depends nginx # dependencias directas
$ apt-cache rdepends nginx # qué paquetes dependen de nginx