it-swarm.it

Come trovare il percorso di installazione di un software su Linux?

Sotto Linux, lancio un software digitando, ad esempio, fluidplot. Come posso trovare il percorso di installazione per questo software?

80
user5997

Puoi usare:

which fluidpoint

per vedere da dove viene eseguito (se è nel tuo $ PATH). O:

find / -name fluidpoint 2> /dev/null

per cercare un file chiamato fluipoint e reindirizzare gli errori sui filesystem virtuali.

Di solito sono in /sbin, /usr/sbin, /usr/local/bin o ~ come directory nascosta.

Dal manuale:

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

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

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

70
n0pe

Se si utilizza una distribuzione basata su RPM (CentOS, RHEL, SUSE, openSUSE) è possibile utilizzare rpm -ql

Esempio:

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

Le cose non sono installate in posizioni nel mondo Linux/UNIX come se fossero nel mondo Windows (e anche un po 'nel mondo Mac). Sono più distribuiti. I binari sono in /bin o /sbin, le librerie sono in /lib, icone/grafici/documenti sono in/condividi, la configurazione è in /etc e i dati del programma sono in /var.

Il /bin, /lib, /sbin contiene le applicazioni principali necessarie per l'avvio e il /usr contiene tutte le altre applicazioni utente e di sistema.

14
djsumdog

Il comando whereis individua i file binari, di origine e della pagina del manuale per un comando e il comando type indica esattamente cosa esegue Shell quando si esegue un determinato comando.

Provare whereis -l fluidplot nel tuo caso. Se restituisce solo "fluidplot:", ma nessun percorso, significa che il software non è installato. Nota che ciò non include i file che potrebbero essere nascosti nella cartella home in ~/.local/share/ (nel mio caso).

Trovato su Linux Screw

6
魔大农

Solo per aggiungere qualche punto alla risposta di @ djsumdog, se stai usando la dist basata su DPKG, come Ubuntu, puoi usare

dpkg --status some_package

per controllare di cosa si tratta, e

dpkg --listfiles some_package

per verificare quali file sono inclusi/rilevanti per questo pacchetto. È per i pacchetti che non hanno un binario da eseguire, come libnss3. E

dpkg --search some_file

per trovare quale pacchetto include questo file.

Per esempio, dpkg --listfiles libnss3 mi 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

Si noti che le cartelle non sono solo di proprietà di questi pacchetti, ma anche di altri. Controlla i file.

E al contrario, dpkg --search libnss3.so mi 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
5
WesternGun

Puoi provare a eseguire:

ps aux | grep "THE_NAME_OF_A_PROGRAM"

Ci sono buone possibilità che vedrai il percorso del programma (se è in esecuzione)

0
user213527

Invece di usare which ( che probabilmente non è la scelta giusta a meno che tu non stia usando csh ) puoi usare command -v fluidplot per fare in modo che Shell si ronzii come Shell per dirti cosa farebbe se gli chiedessi di eseguire il comando (fluidplot in questo esempio).

Alcuni esempi per me:

$ 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

quindi puoi anche usarlo per verificare se un comando sarebbe stato persino trovato e tentato di essere eseguito. Poiché la maggior parte di noi utilizza shell tipo Bourne (ad esempio, bash o zsh), questo è spesso preferibile a which

0
Eric Renouf