Lihuen
RSSRSS AtomAtom

Manejo de paquetes con dpkg

Descripción

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:

  1. Instalar: dpkg -i paquete.deb
  2. Eliminar: dpkg -r paquete
  3. Estado de un paquete: dpkg -s paquete
  4. Estado de todos paquetes: dpkg -l
  5. Configurar un paquete: dpkg -a|--configure
  6. Construcción: dpkg -b|--build

Opciones

Estado de todos paquetes

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):

  1. u: Unknown (Desconcocido)
  2. i: Install (Instalado)
  3. r: Remove (Eliminado)
  4. p: Purge (Purgado)
  5. h: Hold (Retenido)

En la segunda columna veremos el estado del paquetes (estado real en que está)

  1. n: Not- No instalado
  2. i: Inst ? Instalado correctamente
  3. c: Cfg-files ? Archivos de configuración permanecen en el sistema
  4. u: Unpacked- El paquete está sin desempaquetar
  5. f: Failed-cfg- Falló en eliminar los archivos de configuración
  6. h: Half-inst- El paquete está a medio instalar
  7. W: trig-aWai - Se está esperando que se ejectuen los paquetes declarados de interés

En la tercera columna aparece sólo si hay un error:

  1. R: Reinst-required Se necesita reinstalar el paquete

En cualquierqa de los casos si la letra está en mayúscula especifíca como estado malo.

Seleccionar paquetes para instalar

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

Comparar las versiones de 2 paquetes

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.

Buscar un archivo en los paquetes

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