Linuxでソフトウェアのインストールパスを見つける方法


71

Linuxでは、たとえばfluidplotと入力してソフトウェアを起動します。このソフトウェアのインストールパスを見つけるにはどうすればよいですか?


可能性のある重複18472
sakisk

回答:


62

次を使用できます。

which fluidpoint

実行元を確認します($ PATHにある場合)。または:

find / -name fluidpoint 2> /dev/null

fluipointという名前のファイルを探し、仮想ファイルシステムでエラーをリダイレクトします。

通常、彼らがしている/sbin/usr/sbin/usr/local/binまたは~隠しディレクトリなど。

マニュアルから:

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

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

完全なマニュアル:https : //linux.die.net/man/1/which


4
または、例えば、プログラムが実際に別名であるかどうかをチェックしalias fluidpoint
チャドフェラー

2
@Chadのいくつかのバージョンwhich(たとえば、ZSHに組み込まれたもの)があなたのためにそれを行います
Michael Mrozek

@Michael知っているのは素晴らしい。あなたのコメントのおかげで、新しいバージョンのbashもこれを行うことがわかりました。コメントへの+1。
チャドフェラー

「通常は...」の行はかなり不誠実で、追加のソフトウェアが/opt/*またはにあるはず/usr/local/binです。 ~あなたのホームディレクトリです、なぜあなたはそれを「隠し」と呼ぶのか混乱しています。
スティーブo

あいまいになってすみません、つまり~/.dir。隠しディレクトリは、ホームディレクトリの下にあります。そして、私はドープについて完全に忘れていました/usr/local/bin
n0pe

13

RPMベースのディストリビューション(CentOS、RHEL、SUSE、openSUSE)を使用する場合は、rpm -qlを使用できます

例:

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

Windows(およびMacでも)の世界のように、Linux / UNIXの世界の場所に物はインストールされません。より分散されています。バイナリは/binまたは/sbin、ライブラリは/lib、icons / graphics / docsは/ shareに、構成はinに/etc、プログラムデータはにあり/varます。

/bin/lib/sbinブートするために必要なコアアプリケーションが含まれているし、/usr他のすべてのユーザーとシステムのアプリケーションが含まれています。


5

このwhereisコマンドは、コマンドのバイナリ、ソース、およびマニュアルページファイルを見つけ、type特定のコマンドを実行したときにシェルが実行する内容を正確に伝えます。あなたの場合に
試しwhereis -l fluidplotてください。

「fluidplot:」のみを返し、パスを返さない場合、ソフトウェアはインストールされていません。

これには、ホームフォルダー内に隠されている可能性のあるファイルは含まれていません~/.local/share/(私の場合)。

Linux Screwで見つかりました


再:「これは含まれていません...」、それはかどうかは明らかではありません、これが指し入力しwhereisは、またはその両方。
agc

4

@djsumdogの答えにポイントを追加するために、UbuntuのようなDPKGベースのdistを使用している場合、

dpkg --status some_package

それが何であるかを確認し、そして

dpkg --listfiles some_package

このパッケージに含まれる/関連するファイルを確認します。のように、実行するバイナリがないパッケージ用libnss3です。そして

dpkg --search some_file

このファイルが含まれているパッケージを見つける。

たとえば、dpkg --listfiles libnss3私に与えます:

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

フォルダはこのパッケージだけでなく、他のパッケージによっても所有されていることに注意してください。ファイルを確認するだけです。

そして逆に、dpkg --search libnss3.so私に与えます:

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

使用する代わりにwhichおそらくcshを使用している場合を除き、これは正しい選択ではありませんcommand -v fluidplot、シェルをシェルのように跳ね返させて、コマンドを実行するように要求した場合に何をするかを伝えることができます(fluidplotこの例では) 。

私のためのいくつかの例:

$ 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

そのため、コマンドを見つけて実行しようとするかどうかをテストするためにも使用できます。私たちのほとんどはBourneのようなシェル(bashやzshなど)を使用しているため、多くの場合、which

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.