だから私はたぶん私が愚かに見えるようになるだろう簡単な質問がありましたが、私は学んでいます
私がするとき
./configure --prefix/usr/bin/
プレフィックスは何をしていますか?これはその場所にパッケージをインストールするだけですか
また、返信では、複雑なインストールの詳細な回答を提供し、それに伴うプレフィックスとオプションを詳細に説明できます。
Apt-getインストールを実行する場合、プレフィックス付きの特定の場所にどのようにインストールしますか
私も見ました
PREFIX=/tmp/installdir make
PREFIX=/tmp/installdir make install
./configureでprefixが呼び出された場合、なぜこれらの2つの例では常にプレフィックスが作成されるのですか?
前もって感謝します!
make install
またはSudo make install
を使用してソフトウェアをインストールすると、異なるファイルが異なるディレクトリに配置されます。ユーザーが実行するコマンドを提供する実行可能ファイルは、通常bin
ディレクトリに移動し、ライブラリは通常lib
ディレクトリに移動し、マニュアルページは通常man
ディレクトリに移動します。
./configure
を実行するとき、--prefix
オプションを使用すると、thoseディレクトリの場所を指定できます。 --prefix
と呼ばれるのは、ビルドするプログラムまたはライブラリのファイルをインストールする各ディレクトリへのパスに表示されるprefixを指定できるためです。ほとんどのconfigure
スクリプトは--prefix
をサポートし、それを省略して./configure
を実行することは、通常./configure --prefix=/usr/local
と同等です。
これにもっと完全に答えるために、私は my answer から tarファイルを「グローバルに」インストールする方法? (on nix&Linux =)、この質問に具体的に対処します:
ビルドの構成
./configure
およびmake
を実行してコンパイルされたソースコードがある場合、通常はmake install
(またはSudo make install
)を使用してインストールします。これにより、ビルドディレクトリからインストール場所にファイルがコピーされます。インストールするものが実行可能コマンドを提供する場合、それらの実行可能ファイルは通常、$PATH
にあるディレクトリにコピーされるか、$PATH
に追加することを検討する必要があります。ソフトウェアのビルドとインストールは、多くの場合、
./configure
、make
、時にはmake check
またはmake test
、そしてmake install
またはSudo make install
を実行するのと同じくらい簡単ですが、ビルドを構成するオプションをconfigure
スクリプトに渡すことができます。特に、 pfnueselが言うように 、これはあなたがどのように設定するかwhereソフトウェアがインストールされます。make install
ステップは実際にソフトウェアをインストールしますが、通常、すべてがインストールされる場所は./configure
ステップで設定されます。このための最も一般的なオプションは
--prefix
です。configure
に何を使用するかを指定しない場合のデフォルトのプレフィックスは、通常/usr/local
です。 (場合によっては、プログラムまたはライブラリのソースコードが他のプレフィックスにデフォルト設定されることがあります。幸いなことに、これはまれです。)したがって、
./configure
は通常、./configure --prefix=/usr/local
と同等です。ホームディレクトリにソフトウェアをインストールするには、./configure --prefix=/home/galahad
(/home/galahad
がホームディレクトリの場合)または--prefix="$HOME"
を使用できます。もちろん、make
を使用してソフトウェアをビルドおよびインストールする必要があります。ソースコード形式で配布されるすべてのソフトウェアがこのように構築されているわけではないことを言っておくべきです。抽出されたソースコードアーカイブ内のドキュメントを常に検索する必要があります。
--prefix
の意味
./configure --prefix=directory
を実行すると、ソフトウェアをdirectory
ディレクトリの下にインストールする必要があることを示しています。しかし、これは、directory
に緩いファイルを配置することはめったにありません。代わりに、directory
の異なるサブディレクトリに異なる目的に役立つファイルを配置します。それらのサブディレクトリが存在しない場合、それらを作成します。実行可能ファイルは通常、
directory/bin
に入りますが、システム管理に一般的に使用される場合はdirectory/sbin
に入り、ゲームの場合はdirectory/games
に入ります(ごく最近ではありません)。ライブラリは、directory/lib
またはdirectory/lib32
のような別の同様の名前のディレクトリに配置されます。ヘッダーファイルはdirectory/include
に入ります。マニュアルページはdirectory/man
にあります。ソフトウェアで使用されるデータファイルは、directory/share
に入ります。それは、
directory
がprefixであることの意味です。異なるファイルがインストールされる場所を含む親ディレクトリです。 したがって、make install
またはSudo make install
を実行して作成されたほとんどのファイルとディレクトリの 絶対パス にプレフィックスとして表示されます。これにはいくつかの例外があります。システム全体の構成ファイル-常にではありませんが、それらを使用するソフトウェアをインストールするときに作成されることがあります-通常、
/etc
に入ります。これは通常、異なるプレフィックスを指定しても影響を受けません。/usr/local
に多くのソフトウェアをインストールしても、ほとんどの場合/etc
が使用され、/usr/local/etc
ディレクトリは存在しないか、空であるか、ファイルがほとんど含まれていません。多くのシステムでは、
man hier
を実行することにより、一般的なファイルシステムのレイアウトに関する詳細情報を見つけることができます。 GNU/Linuxシステムを使用している場合は、 Filesystem Hierarchy Standard に興味があるかもしれません。
現在のパッケージまたはソフトウェアを構成するために必要なものの場所を示します。
単純な場合のように、sslライブラリの場所を伝えることができます:
--with-libssh2=/usr/local #used in configuring nagios
また、システムに応じてプログラムを適切にコンパイルするために、どのパッケージを構成しないかを指示します。
--disable-shared # used in configuring nagios
--disable-link-balancer # used in configuring Firehol
これらは、ご使用のシステムに適したコンパイルを作成するための単なる追加オプションです。それは私が思うことです。それが何か他のものであるならば、私を修正してください。
--prefix=PREFIX
オプションは、アーキテクチャに依存しないファイルをPREFIX
にインストールします。 make install
コマンドを実行すると、ライブラリはPREFIX/lib
ディレクトリに、実行可能ファイルはPREFIX/bin
ディレクトリなどに配置されます。
この引数がconfigure
コマンドに渡されない場合、デフォルト値は/usr/local
です。