it-swarm.com.de

Wie finde ich den Installationspfad für eine Software unter Linux?

Unter Linux starte ich eine Software, indem ich z. B. Fluidplot eingebe. Wie finde ich den Installationspfad für diese Software?

80
user5997

Sie können verwenden:

which fluidpoint

um zu sehen, von wo es ausgeführt wird (wenn es in Ihrem $ PATH ist). Oder:

find / -name fluidpoint 2> /dev/null

um nach einer Datei mit dem Namen fluipoint zu suchen und Fehler auf virtuellen Dateisystemen umzuleiten.

Normalerweise sind sie in /sbin, /usr/sbin, /usr/local/bin oder ~ als verstecktes Verzeichnis.

Aus dem Handbuch:

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

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

Vollständiges Handbuch: https://linux.die.net/man/1/which

70
n0pe

Wenn Sie eine RPM-basierte Distribution (CentOS, RHEL, SUSE, openSUSE) verwenden, können Sie rpm -ql verwenden

Beispiel:

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

Dinge werden nicht an Orten in der Linux/UNIX-Welt installiert, wie sie in der Windows- (und sogar etwas in der Mac-) Welt sind. Sie sind mehr verteilt. Binärdateien sind in /bin oder /sbin, Bibliotheken sind in /lib, Symbole/Grafiken/Dokumente befinden sich in/share, Konfiguration in /etc und Programmdaten sind in /var.

Das /bin, /lib, /sbin enthalten die zum Booten benötigten Kernanwendungen und die /usr enthält alle anderen Benutzer- und Systemanwendungen.

14
djsumdog

Der Befehl whereis sucht die Binär-, Quell- und Handbuchseitendateien für einen Befehl, und der Befehl type gibt an, was genau die Shell ausführt, wenn Sie einen bestimmten Befehl ausführen.

Versuchen Sie in Ihrem Fall whereis -l fluidplot. Wenn nur "fluidplot:", aber kein Pfad zurückgegeben wird, bedeutet dies, dass die Software nicht installiert ist. Beachten Sie, dass dies keine Dateien enthält, die möglicherweise im Home-Ordner unter ~/.local/share/ Versteckt sind (in meinem Fall).

Gefunden am Linux Screw

6
魔大农

Nur um der Antwort von @ djsumdog einen Punkt hinzuzufügen: Wenn Sie DPKG-basiertes dist wie Ubuntu verwenden, können Sie es verwenden

dpkg --status some_package

um zu überprüfen, worum es geht, und

dpkg --listfiles some_package

um zu überprüfen, welche Dateien in diesem Paket enthalten/relevant sind. Es ist für Pakete, für die keine Binärdatei ausgeführt werden muss, wie z. B. libnss3. Und

dpkg --search some_file

um herauszufinden, welches Paket diese Datei enthält.

Beispielsweise, dpkg --listfiles libnss3 gibt mir:

/.
/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

Beachten Sie, dass die Ordner nicht nur diesen Paketen gehören, sondern auch anderen. Überprüfen Sie einfach die Dateien.

Und umgekehrt, dpkg --search libnss3.so gibt mir:

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

Sie können versuchen zu laufen:

ps aux | grep "THE_NAME_OF_A_PROGRAM"

Es gibt ziemlich gute Chancen, dass Sie den Pfad zum Programm sehen (wenn es läuft).

0
user213527

Anstelle von which ( was wahrscheinlich nicht die richtige Wahl ist, wenn Sie nicht csh verwenden ) können Sie command -v fluidplot, damit die Shell wie Shell abprallt und Ihnen sagt, was sie tun würde, wenn Sie sie auffordern würden, den Befehl auszuführen (fluidplot in diesem Beispiel).

Einige Beispiele für mich:

$ 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

sie können damit auch testen, ob ein Befehl überhaupt gefunden und ausgeführt werden soll. Da die meisten von uns Bourne-ähnliche Muscheln verwenden (z. B. Bash oder Zsh), ist dies häufig which vorzuziehen

0
Eric Renouf