Comando dpkg en Linux: Instalar, Eliminar y Gestionar Paquetes .deb
La utilidad dpkg es responsable de la administración de paquetes en sistemas Debian.
dpkg es el comando base para manipular paquetes Debian en sistemas basados en esta familia de Distribuciones. Si tienes paquetes .deb, es dpkg el que permite la instalación o análisis de sus contenidos.
Pero este programa solo tiene una visión parcial de la administración de paquetes Debian: sabe lo que está instalado en el sistema, y lo que se escriba en la línea de comandos, pero no sabe nada sobre los otros paquetes disponibles.
Así, si necesitas descargar manualmente un "paquete.deb" para manipularlo con dpkg.
Y también dpkg fallará si una dependencia no se cumple durante una instalación de paquete. Herramientas como apt y aptitude, por el contrario, crearán una lista de dependencias para instalar todo de la forma más automatizada posible.
dpkg mantiene la información de los paquetes instalados básicamente en los archivos /var/lib/dpkg/available y /var/lib/dpkg/status. Estos archivos contienen la lista de paquetes disponibles y estado, respectivamente.
Según la Wiki de Debian, es responsable del mantenimiento en bajo nivel de los paquetes en el sistema.
Las opciones más frecuentes son:
- -E: Esta opción no reescribe un paquete ya instalado de la misma versión;
- -G: Esta opción no reescribe un paquete ya instalado, aunque sea más antiguo;
- -R: Procesa todos los paquetes encontrados en un determinado directorio de forma recursiva.
Las acciones más frecuentes son:
- -i nomedopacote: Instala el paquete nomedopacote. Este proceso involucra hacer copia de respaldo de los archivos antiguos que ya existan en el sistema, desempaquetado, instalación y configuración. Esta acción también puede ser referenciada con –install nomedopacote;
- -l chavebusca: Lista la información de los paquetes que contengan en el nombre la misma clave de búsqueda;
- -L nomedopacote: Lista los archivos instalados por el paquete nomedopacote;
- --print-avail nomedopacote: Lista toda la información disponible sobre el paquete nomedopacote en /var/lib/dpkg/avaliable;
- --purge nomedopacote: Elimina todo el paquete nomedopacote;
- -r nomedopacote: Elimina todos los archivos del paquete, menos las configuraciones;
- -s nomedopacote: Muestra el estado del paquete;
- -S arquivo: Busca por un archivo en los paquetes instalados;
- --unpack nomedopacote: Desempaqueta un paquete, pero no instala;
- --configure nomedopacote: Configura un paquete no instalado.
Ejemplos:
Instala el paquete acct_6.3.5-32_i386.deb.
# dpkg -i acct_6.3.5-32_i386.deb
Elimina el paquete ace-of-penguins_1.2-3_i386.deb del sistema completamente.
# dpkg --purge ace-of-penguins_1.2-3_i386.deb
Configura el paquete abook_0.4.16-1_i386.deb.
# dpkg --configure abook_0.4.16-1_i386.deb
dpkg también puede ser utilizado para descubrir a qué paquete pertenece determinado archivo con la opción "-S" (mayúscula):
# dpkg -S stdio.h
libc6-dev: /usr/include/stdio.h
libc6-dev: /usr/include/bits/stdio.h
perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
La opción "-s" (minúscula) de dpkg puede ser usada para ver información de un determinado paquete:
$dpkg -s coreutilsPackage: coreutils Essential: yes Status: install ok installed Priority: required Section: utils Installed-Size: 15719 Maintainer: Michael Stone <[email protected]> Architecture: amd64 Multi-Arch: foreign Version: 8.30-3 Pre-Depends: libacl1 (>= 2.2.23), libattr1 (>= 1:2.4.44), libc6 (>= 2.28), libselinux1 (>= 2.1.13) Description: GNU core utilities This package contains the basic file, shell and text manipulation utilities which are expected to exist on every operating system.
Otra posibilidad es descubrir los paquetes instalados en el sistema a partir de una clave:
# dpkg -l | grep mozilla
ii mozilla-browse 0.9.6-7 Mozilla Web Browser
El archivo /etc/dpkg/dpkg.cfg contiene las opciones predeterminadas cuando dpkg es ejecutado.
Los archivos de control de dpkg residen en el directorio /var/lib/dpkg. Dos archivos interesantes en este directorio son:
- /var/lib/dpkg/available: Lista de paquetes disponibles;
- /var/lib/dpkg/status: Estado de los paquetes instalados. Informa cuándo fueron instalados, eliminados, etc.
El comando dpkg también puede ser usado para desempaquetar un paquete, de forma que es posible ver su contenido.
$ dpkg --unpack man-db_2.8.5-2_amd64.deb
(Leyendo base de datos… 14937 archivos y directorios actualmente instalados.)
Preparando para desempaquetar man-db_2.8.5-2_amd64.deb…
Desempaquetando man-db (2.8.5-2) sobre (2.8.5-2)…
Disparadores de procesamiento para soporte MIME (3,62)…
Este comando no es muy utilizado en la práctica, ya que el comando apt o apt-get son mucho más fáciles de utilizar.
Aprende mucho más sobre Linux en nuestro curso en línea. Puedes realizar la inscripción aquí. Si ya tienes una cuenta, o quieres crear una, simplemente ingresa o crea tu usuario aquí.
¿Te gustó? Comparte
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.