En Linux, ejecuto un software escribiendo, por ejemplo, fluidplot. ¿Cómo puedo encontrar la ruta de instalación para este software?
En Linux, ejecuto un software escribiendo, por ejemplo, fluidplot. ¿Cómo puedo encontrar la ruta de instalación para este software?
Respuestas:
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
alias fluidpoint,
which(por ejemplo, la integrada en ZSH) lo harán por usted
/opt/*o /usr/local/bin. ~es tu directorio personal, estoy confundido por qué lo llamas "oculto".
~/.dir. El directorio oculto está debajo del directorio de inicio. Y me olvidé por completo del /usr/local/bindop.
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.
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
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
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