¿Qué es dpkg?
dpkg (Debian Package) es el gestor de paquetes base del sistema Debian. Opera directamente sobre archivos .deb y mantiene la base de datos interna de paquetes instalados.
Características clave:
- Trabaja a nivel local
- No descarga paquetes
- No resuelve dependencias
- Es la base sobre la que funcionan herramientas de más alto nivel como:
- apt
- apt-get
- aptitude
Resumen
| Herramienta | Descarga | Resuelve dependencias |
|---|---|---|
| dpkg | No | No |
| apt | Sí | Sí |
¿Qué es un paquete .deb?
Un paquete .deb es un archivo comprimido que contiene:
- Binarios del programa
- Archivos de configuración
- Scripts de mantenimiento:
- preinst
- postinst
- prerm
- postrm
- Metadatos (nombre, versión, dependencias, arquitectura)
dpkg se encarga de desempaquetar y registrar estos elementos en el sistema.
Sintaxis general
dpkg [opciones] acción paquete.deb
O para consultas:
dpkg [opciones] acción
Acciones principales de dpkg
Instalar un paquete
sudo dpkg -i paquete.deb
- Instala el paquete local
- Registra el paquete en la base de datos
- Falla si faltan dependencias
sudo dpkg -i google-chrome-stable_current_amd64.deb
Eliminar un paquete (mantiene configuración)
sudo dpkg -r nombre_paquete
- Elimina binarios
- Conserva archivos de configuración
Purgar un paquete (eliminación completa)
sudo dpkg -P nombre_paquete
- Elimina binarios
- Elimina archivos de configuración
- Elimina scripts asociados
Configurar paquetes pendientes
sudo dpkg --configure -a
- Finaliza instalaciones interrumpidas
- Muy usado después de errores con
apt
Consultas con dpkg
Listar todos los paquetes instalados
dpkg -l
Estados comunes:
- ii → instalado correctamente
- rc → eliminado, configuración presente
- un → no instalado
Ver si un paquete está instalado
dpkg -l | grep nombre_paquete
Ver información de un paquete instalado
dpkg -s nombre_paquete
Muestra:
- Versión
- Arquitectura
- Dependencias
- Estado
- Descripción
Listar archivos instalados por un paquete
dpkg -L nombre_paquete
Muy útil para:
- Auditorías
- Depuración
- Saber qué archivo pertenece a qué paquete
Saber a qué paquete pertenece un archivo
dpkg -S /ruta/del/archivo
Ejemplo:
dpkg -S /bin/ls