Tuve la necesidad de determinar en qué ubicación un cierto paquete estaba instalando uno de sus archivos. En sistemas basados en Debian es posible hacer uso de la herramienta dpkg para tal fin.



En este blog se habló ya muchas veces sobre repositorios, secciones, paquetes, y archivos en Debian y derivados. Anteriormente demostré cómo saber desde qué repositorio proviene un paquete, cómo saber de qué paquete proviene un archivo, cómo listar todos los paquetes instalados desde un repositorio específico y cómo buscar y obtener información de paquetes, entre otros artículos relacionados a la gestión de paquetes y repositorios en Debian y derivados.

Como expliqué en el artículo Cómo saber de qué paquete proviene un archivo en Debian y CentOS, la herramienta apt-file permite saber qué paquete provee un archivo específico. En este caso se desea lo inverso saber qué archivo provee un paquete. A tal fin, es necesario recurrir a las herramientas del gestor de paquetes de bajo nivel (dpkg).

dpkg es el gestor de paquetes de bajo nivel de Debian. Esta herramienta instala, compila, elimina y manipula los paquetes. También puede utilizarse como interfaz a las herramientas de más bajo nivel dpkg-deb y dpkg-query.

dpkg-query es una herramienta que permite consultar la base de datos de dpkg. Esta muestra información sobre paquetes listados en la misma. A través de la opción -L permite listar todos los archivos que un paquete ha instalado en el sistema, sólo basta indicar un nombre de paquete (instalado) como parámetro:

root@debian:~# dpkg -L gskssl64 
/.
/usr
/usr/local
/usr/local/ibm
/usr/local/ibm/gsk8_64
/usr/local/ibm/gsk8_64/inc
/usr/local/ibm/gsk8_64/copyright
/usr/local/ibm/gsk8_64/docs
/usr/local/ibm/gsk8_64/bin
/usr/local/ibm/gsk8_64/bin/gsk8capicmd_64
/usr/local/ibm/gsk8_64/bin/gsk8ver_64
/usr/local/ibm/gsk8_64/lib64
/usr/local/ibm/gsk8_64/lib64/libgsk8cms_64.so
/usr/local/ibm/gsk8_64/lib64/libgsk8valn_64.so
/usr/local/ibm/gsk8_64/lib64/libgsk8km_64.so
/usr/local/ibm/gsk8_64/lib64/libgsk8ssl_64.so
/usr/local/ibm/gsk8_64/lib64/libgsk8sys_64.so
/usr/local/ibm/gsk8_64/lib64/libgsk8dbfl_64.so
/usr/local/ibm/gsk8_64/lib64/libgsk8acmeidup_64.so
/usr/local/ibm/gsk8_64/lib64/libgsk8p11_64.so
/usr/local/ibm/gsk8_64/lib64/libgsk8kicc_64.so
/usr/local/ibm/gsk8_64/lib64/libgsk8drld_64.so
/usr/local/ibm/gsk8_64/lib64/libgsk8ldap_64.so
/usr/local/ibm/gsk8_64/ReadMe.txt
/usr/share
/usr/share/doc
/usr/share/doc/gskssl64
/usr/share/doc/gskssl64/copyright
/usr/share/doc/gskssl64/changelog.Debian.gz

De esta forma es posible conocer la ubicación exacta de cada uno de los archivos que conforman un paquete en Debian.

Para más información:

man dpkg
man 1 dpkg-query


Tal vez pueda interesarte


Compartí este artículo