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


Antworten:


62

Sie können verwenden:

which fluidpoint

um zu sehen, woher es ausgeführt wird (wenn es sich in Ihrem $ PATH befindet). 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/binoder ~als ein 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


4
oder überprüfen , um zu sehen , ob das Programm tatsächlich ein Alias ist, zum Beispiel alias fluidpoint,
Chad Feller

2
@Chad Einige Versionen von which(z. B. die in ZSH integrierte Version) erledigen das für Sie
Michael Mrozek

@Michael ausgezeichnet zu wissen. Aufgrund Ihres Kommentars habe ich gerade festgestellt, dass neuere Versionen von bash dies auch tun. +1 zu deinem Kommentar.
Chad Feller

Die Zeile "Normalerweise sind sie ..." ist ziemlich unaufrichtig, zusätzliche Software sollte in /opt/*oder sein /usr/local/bin. ~ist dein Heimatverzeichnis, ich bin verwirrt, warum du es "versteckt" nennst.
Steve-o

Tut mir leid, dass ich mehrdeutig bin ~/.dir. Das versteckte Verzeichnis befindet sich unterhalb des Basisverzeichnisses. Und ich habe /usr/local/binDop komplett vergessen .
Nr.

13

Wenn Sie eine RPM-basierte Distribution verwenden (CentOS, RHEL, SUSE, openSUSE), 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-Welt (und sogar etwas in der Mac-Welt) sind. Sie sind mehr verteilt. Binärdateien befinden sich in /binoder /sbin, Bibliotheken befinden sich in /lib, Symbole / Grafiken / Dokumente befinden sich in / Freigabe, Konfiguration befindet sich in /etcund Programmdaten befinden sich in /var.

Die /bin, /lib, /sbinenthalten die Kernanwendungen benötigt zum Booten und die über /usralle anderen Benutzer und Systemanwendungen.


5

Der whereisBefehl sucht die Binär-, Quell- und Handbuchdateien für einen Befehl und gibt an type, was genau die Shell ausführt, wenn Sie einen bestimmten Befehl ausführen.
Versuchen Sie es whereis -l fluidplotin Ihrem Fall.

Wenn nur "fluidplot:", aber kein Pfad zurückgegeben wird, bedeutet dies, dass die Software nicht installiert ist.

Beachten Sie, dass dies keine Dateien einschließt, die ~/.local/share/(in meinem Fall) im Basisordner unter versteckt sind .

Gefunden unter Linux Screw


Betreff: "das schließt nicht ein ...", es ist nicht klar, ob es sich um type , whereis oder beides handelt.
Agc

4

Nur um @ djsumdogs Antwort einen Punkt hinzuzufügen, wenn Sie DPKG-basierte dist verwenden, wie Ubuntu, können Sie 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 gedacht, die keine Binärdatei haben libnss3. Und

dpkg --search some_file

um herauszufinden, welches Paket diese Datei enthält.

Zum Beispiel dpkg --listfiles libnss3gibt 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.sogibt 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

0

Anstatt zu verwenden which( was wahrscheinlich nicht die richtige Wahl ist, wenn Sie nicht csh verwenden ), können command -v fluidplotSie die Shell dazu bringen, sich wie eine Shell zu bewegen, um Ihnen mitzuteilen, was sie tun würde, wenn Sie sie auffordern würden, den Befehl auszuführen ( fluidplotin 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 überhaupt ein Befehl gefunden und ausgeführt werden würde. Da die meisten von uns Bourne-ähnliche Shells verwenden (z. B. bash oder zsh), ist dies oft vorzuziehenwhich

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.