Localización de un comando y paquete propietario de un archivo en GNU/Linux

Escrito por picodotdev el .
gnu-linux
Enlace permanente Comentarios

Usando alguna distribución GNU/Linux en algún momento nos interesará saber a qué paquete de los que tenemos instalados pertenece un determinado comando o a qué paquete pertenece un determinado archivo del sistema.

Para saber en qué paquete está un determinado archivo primero deberemos conocer la ruta absoluta del archivo en cuestión. Si se trata de un comando con el comando which conoceremos la ubicación absoluta. Por ejemplo, para conocer la ubicación de el comando java usamos:

1
2
$ which java
/usr/bin/java
which.sh

Conociendo la ruta absoluta del archivo y con el gestor de paquetes de la distribución podremos conocer en qué paquete está contenido y por qué paquete ha sido instalado o es su propietario. En Arch Linux se averigua con el siguiente comando:

1
2
$ pacman -Qo /usr/bin/java
/usr/bin/java está contenido en java-runtime-common 2-2
pacman-java.sh

En Arch Linux java-runtime-common es un paquete que nos permite cambiar la versión de la máquina virtual a usar en el sistema pudiendo intercambiar entre Java 7 y Java 8, esto se realiza con algunos enlaces simbólicos.

1
2
3
4
5
$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 37 nov  2  2014 /usr/bin/java -> /usr/lib/jvm/default-runtime/bin/java

$ ls -l /usr/lib/jvm/default-runtime
lrwxrwxrwx 1 root root 18 dic  4  2014 /usr/lib/jvm/default-runtime -> java-8-openjdk/jre
ls.sh

Si queremos conocer el paquete del binario java usaremos la ruta absoluta en el comando para averiguarlo con el gestor de paquetes ya sea con pacman o yaourt:

1
2
$ pacman -Qo /usr/lib/jvm/java-8-openjdk/bin/java
/usr/lib/jvm/java-8-openjdk/bin/java está contenido en jdk8-openjdk 8.u102-1
pacman-java8.sh

En las distribuciones basadas en paquetes .deb como Debian o Ubuntu el comando es el siguiente:

1
$ dpkg -S /usr/bin/java
dpkg.sh

Y en las distribuciones basadas en .rpm como como RedHat y Fedora:

1
$ rpm -qf /usr/bin/java
rpm.sh
Comparte el artículo: