¿Cómo encontrar la ruta de instalación de un software en Linux?


Respuestas:


62

Puedes usar:

which fluidpoint

para ver desde dónde se está ejecutando (si está en su $ PATH). O:

find / -name fluidpoint 2> /dev/null

para buscar un archivo llamado fluipoint y redirigir errores en sistemas de archivos virtuales.

Por lo general, se encuentran en /sbin, /usr/sbin, /usr/local/bino ~como un directorio oculto.

Del manual:

NAME
       which - shows the full path of (shell) commands.

SYNOPSIS
       which [options] [--] programname [...]

Manual completo: https://linux.die.net/man/1/which


44
o verifique si el programa es realmente un alias, por ejemplo alias fluidpoint,
Chad Feller

2
@Chad Algunas versiones de which(por ejemplo, la integrada en ZSH) lo harán por usted
Michael Mrozek

@Michael excelente para saber. Debido a tu comentario, acabo de descubrir que las versiones más nuevas de bash también hacen esto. +1 a tu comentario
Chad Feller

La línea "Usualmente son ..." es bastante falsa, el software adicional debería estar en /opt/*o /usr/local/bin. ~es tu directorio personal, estoy confundido por qué lo llamas "oculto".
Steve-o

Perdón por ser ambiguo, quiero decir ~/.dir. El directorio oculto está debajo del directorio de inicio. Y me olvidé por completo del /usr/local/bindop.
n0pe

13

Si usa una distribución basada en RPM (CentOS, RHEL, SUSE, openSUSE) puede usar rpm -ql

Ejemplo:

rpm -ql findutils
/bin/find
/usr/bin/find
/usr/bin/xargs
/usr/share/doc/packages/findutils
/usr/share/doc/packages/findutils/AUTHORS
/usr/share/doc/packages/findutils/COPYING
/usr/share/doc/packages/findutils/NEWS
/usr/share/doc/packages/findutils/README
/usr/share/doc/packages/findutils/THANKS
/usr/share/doc/packages/findutils/TODO
/usr/share/info/find.info.gz
/usr/share/man/man1/find.1.gz

Las cosas no están instaladas en ubicaciones en el mundo Linux / UNIX como lo están en el mundo Windows (e incluso en el mundo Mac). Están más distribuidos. Los binarios están en /bino /sbin, las bibliotecas están en /lib, los iconos / gráficos / documentos están en / compartir, la configuración está en /etcy los datos del programa están en /var.

El /bin, /lib, /sbincontienen las aplicaciones básicas necesarias para el arranque y la /usrcontiene todas las otras aplicaciones de usuario y del sistema.


5

El whereiscomando localiza los archivos binarios, de origen y de página manual para un comando, y el typecomando le dice exactamente qué ejecuta el shell cuando ejecuta un determinado comando.
Prueba whereis -l fluidploten tu caso.

Si solo devuelve "fluidplot:", pero no hay ruta, significa que el software no está instalado.

Tenga en cuenta que esto no incluye archivos que pueden estar ocultos dentro de la carpeta de inicio en ~/.local/share/(en mi caso).

Encontrado en Linux Screw


Re: "esto no incluye ...", no está claro si esto se refiere a tipo , whereis o ambos.
agc

4

Solo para agregar algún punto a la respuesta de @ djsumdog, si está usando dist basado en DPKG, como Ubuntu, puede usar

dpkg --status some_package

para comprobar de qué se trata, y

dpkg --listfiles some_package

para verificar qué archivos están incluidos / relevantes para este paquete. Es para paquetes que no tienen un binario para ejecutar, como libnss3. Y

dpkg --search some_file

para encontrar qué paquete incluye este archivo.

Por ejemplo, dpkg --listfiles libnss3me da:

/.
/usr
/usr/lib
/usr/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu/libssl3.so
/usr/lib/i386-linux-gnu/nss
/usr/lib/i386-linux-gnu/nss/libsoftokn3.chk
/usr/lib/i386-linux-gnu/nss/libnssckbi.so
/usr/lib/i386-linux-gnu/nss/libnsssysinit.so
/usr/lib/i386-linux-gnu/nss/libfreebl3.chk
/usr/lib/i386-linux-gnu/nss/libnssdbm3.chk
/usr/lib/i386-linux-gnu/nss/libnssdbm3.so
/usr/lib/i386-linux-gnu/nss/libsoftokn3.so
/usr/lib/i386-linux-gnu/nss/libfreebl3.so
/usr/lib/i386-linux-gnu/libnssutil3.so
/usr/lib/i386-linux-gnu/libsmime3.so
/usr/lib/i386-linux-gnu/libnss3.so
/usr/share
/usr/share/doc
/usr/share/doc/libnss3
/usr/share/doc/libnss3/copyright
/usr/share/doc/libnss3/changelog.Debian.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libnss3

Tenga en cuenta que las carpetas no solo son propiedad de estos paquetes, sino también de otros. Solo revisa los archivos.

Y a la inversa, dpkg --search libnss3.some da:

firefox: /usr/lib/firefox/libnss3.so
thunderbird: /usr/lib/thunderbird/libnss3.so
libnss3:i386: /usr/lib/i386-linux-gnu/libnss3.so
libnss3-1d:i386: /usr/lib/i386-linux-gnu/libnss3.so.1d

0

En lugar de usar which( que probablemente no sea la opción correcta a menos que esté usando csh ), puede usar command -v fluidplotpara que el shell se sintonice como shell para decirle qué haría si le pidiera que ejecutara el comando ( fluidploten este ejemplo) .

Algunos ejemplos para mi:

$ command -v ls
alias ls='ls --color=auto'
$ command -v cat
/bin/cat
$ test_func() {
> :
> }
$ command -v test_func
test_func
$ which test_func
/usr/bin/which: no test_func in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin)
$ if command -v noSuchFile; then echo "It exists"; else echo "does not exist"; fi
does not exist

así que también puede usarlo para probar si un comando incluso se encontraría e intentaría ejecutarse. Como la mayoría de nosotros usamos shells tipo Bourne (por ejemplo, bash o zsh), esto es preferible awhich

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.