Dpkg es una de las herramientas de Debian para el manejo de paquetes. A través de este comando podemos realizar una gran variedad de acciones:
Utilizando dpkg con la opción -l|--list, veremos la lista de los paquetes instalados en nuestro sistema con una breve descripción del estado de cada uno. Veremos como interpretar esta información. Miramos como ejemplo una lista:
ii network-manage 0.8.1-2 network management framework (GNOME frontend ii nfs-common 1:1.2.2-4 NFS support files common to client and serve ii nitrogen 1.5.1-1 wallpaper browser and changing utility for X ii nmap 5.00-3 The Network Mapper ii notification-d 0.5.0-2 daemon to displays passive pop-up notificati
En la primera columna veremos el estado del paquete (en que debería):
En la segunda columna veremos el estado del paquetes (estado real en que está)
En la tercera columna aparece sólo si hay un error:
En cualquierqa de los casos si la letra está en mayúscula especifíca como estado malo.
Si queremos instalar una máquina con los mismos paquetes que ya tiene otra instalada.
Primero obtenemos la lista de paquetes instalamos en la maquina1 y la guardamos en un archivo:
#dpkg --get-selections > archivo_paquetes
Segundo leemos de este archivo la lista de paquetes:
#dpkg --set-selections < archivo_paquetes
Tercero utilizamos apt-get para que resuelva la instalación de los paquetes:
#apt-get dselect-upgrade
Muchas veces es útil ver que versión considera mayor el sistema de paquetes, sobre todo para hacer nuestros propios paquetes.
Por ejemplo para ver si una versión "0.3.1" es mayor que una versión "0.3-1" podemos usar el operador gt (greater than).
dpkg --compare-versions 0.3.1 gt 0.3-1 && echo Verdadero || echo Falso
También provee otros operadores, los más comunes son: lt le eq ne ge gt
Ver la ayuda de dpkg para más detalles sobre los operadores.
Si deseamos buscar en qué paquete está incluído un determinado archivo o patrón podemos utilizar la opción -S
#dpkg -S patrón
muestra todos los paquetes que tengan un archivo que conincide con el patrón de búsqueda, ejemplo:
#dpkg -S find gnome-dictionary: /usr/share/gnome/help/gnome-dictionary/el/figures/gnome-dictionary-find.png perl-base: /usr/lib/perl/5.10.1/auto/DynaLoader/dl_findfile.al kdelibs-data: /usr/share/icons/crystalsvg/32x32/actions/filefind.png
si en cambio queremos buscar un determinado archivo debemos poner el path completo de la ubicación del mismo
#dpkg -S /usr/bin/find findutils: /usr/bin/find