./configureで--prefixを使用するとどうなりますか?


29

だから私はたぶん私が愚かに見えるようにする簡単な質問をしましたが、私は学んでいます

私がするとき

./configure --prefix/usr/bin/

プレフィックスは何をしていますか?これはその場所にパッケージをインストールするだけですか

また、返信によって、複雑なインストールの詳細な回答が得られ、それに付随するプレフィックスとオプションについて詳しく説明できます。

apt-getインストールを実行する場合、プレフィックス付きの特定の場所にどのようにインストールしますか

私も見ました

 PREFIX=/tmp/installdir make


 PREFIX=/tmp/installdir make install

./configureでprefixが呼び出された場合、なぜこれらの2つの例で常にプレフィックスが作成されるのですか

前もって感謝します!



更新された回答を確認
-luv.preet

freetds.org/userguide/config.htm、これはあなたを助けるでしょう
-luv.preet

レビュー担当者:これはソフトウェアのインストールに関するものです。「Ubuntuについてではない」という3つのトピック外のクローズ投票があります。これを閉じることが実際のサイトポリシーと何らかの形で一貫している場合 は、コメントすることをお勧めします。それ以外の場合、これは閉じられていても再び開かれる可能性があります。
エリアケイガン

回答:


32

make installまたはsudo make installでソフトウェアをインストールすると、異なるファイルが異なるディレクトリに配置されます。ユーザーが実行することを目的としたコマンドを提供する実行可能ファイルは通常binディレクトリに移動し、ライブラリは通常ディレクトリに移動しlib、マニュアルページは通常manディレクトリに移動します。

実行する./configure--prefixオプションにより、これらのディレクトリの場所を指定できます。ビルドしているプログラムまたはライブラリのファイルがインストールされる各ディレクトリへのパスに表示されるプレフィックスを指定--prefixできるため、呼び出されます。ほとんどのスクリプトはサポートしており、省略して実行することは通常、と同等です。configure--prefix./configure./configure --prefix=/usr/local

これにさらに完全に答えるために、「グローバルに」tarファイルをインストールする方法に対する回答から2つのセクションを再現しましたUnixおよびLinuxの場合)、この質問に具体的に対処します。

ビルドの構成

./configure およびを実行してコンパイルされたソースコードがあるmake場合、通常はmake install(またはsudo make install)を使用してインストールします。これにより、ビルドディレクトリからインストール場所にファイルがコピーされます。インストールするものが実行可能コマンドを提供するとき、それらの実行可能ファイルは通常、にあるディレクトリにコピーされる$PATHか、追加することを検討する必要があります $PATH

多くの場合、ソフトウェアのビルドとインストールは、、、または、および、またはの実行./configureと同じくらい簡単ですが、オプションをスクリプトに渡してビルドを構成することもできます。特に、pfnueselが言うように、これはソフトウェアのインストールを設定する方法です 。ステップが実際にソフトウェアをインストールしても、すべてがインストールされる場所は通常、ステップで確立され ます。makemake checkmake testmake installsudo make installconfiguremake install./configure

これの最も一般的なオプションは--prefixです。デフォルトのプレフィックスは、configure何を使用するかを指定しない場合、通常は/usr/localです。(場合によっては、プログラムまたはライブラリのソースコードが他のプレフィックスにデフォルト設定されることがあります。幸いなことに、これはまれです。)

だから./configure通常はと同等./configure --prefix=/usr/localです。ホームディレクトリにソフトウェアをインストールするには、(ホームディレクトリの./configure --prefix=/home/galahad場合/home/galahad)またはを使用できます--prefix="$HOME"。それからもちろん、まだソフトウェアをビルドしてインストールする必要がありますmake。ソースコード形式で配布されるすべてのソフトウェアがこのように構築されているわけではないことを言っておく必要があります。抽出されたソースコードアーカイブ内のドキュメントを常に探す必要があります。

どのような--prefix手段

を実行すると、ディレクトリの下にソフトウェアをインストールする必要があることを示しています 。しかし、これはめったに、めったにないファイルをに配置します。代わりに、異なる目的に役立つファイルをの異なるサブディレクトリに配置します。それらのサブディレクトリが存在しない場合、それらを作成します。./configure --prefix=directorydirectorydirectorydirectory

通常、実行可能ファイルはに入りますが、システム管理に一般的に使用される場合directory/binは実行可能directory/sbinですdirectory/gamesが、ゲームの場合は実行されます(ごくまれですが、最近では使用されます) 。ライブラリは、 directory/libまたはのような別の同様の名前のディレクトリに入り directory/lib32ます。ヘッダーファイルが入り directory/includeます。マニュアルページが入り directory/manます。ソフトウェアで使用されるデータファイルはに入ります directory/share

これdirectoryprefixであるということです。異なるファイルがインストールされる場所を含む親ディレクトリです。したがって、接頭辞として現れる絶対パスを実行して作成されたほとんどのファイルやディレクトリのmake installsudo make install

これにはいくつかの例外があります。システム全体の設定ファイル-常にではありませんが、それらを使用するソフトウェアをインストールするときに作成されることがあります-通常はに入り/etcます。これは通常、異なるプレフィックスを指定しても影響を受けません。に多くのソフトウェアをインストールした場合/usr/localでも、ほとんどがを使用し /etc/usr/local/etcディレクトリは存在しないか、空であるか、ファイルがほとんど含まれていません。

多くのシステムでは、を実行することにより、典型的なファイルシステムのレイアウトに関する詳細情報を見つけることができますman hier。GNU / Linuxシステムを使用している場合、Filesystem Hierarchy Standardに興味があるかもしれません。


2

現在のパッケージまたはソフトウェアを構成するために必要なものの場所を示します。

単純な場合のように、sslライブラリの場所を伝えることができます:

--with-libssh2=/usr/local  #used in configuring nagios

また、システムに応じてプログラムを適切にコンパイルするために、どのパッケージを構成しないかを指示します。

--disable-shared  # used in configuring nagios
--disable-link-balancer  # used in configuring Firehol

これらは、ご使用のシステムに適したコンパイルを作成するための単なる追加オプションです。それは私が思うことです。それが何か他のものであるならば、私を修正してください。

この--prefix=PREFIXオプションは、アーキテクチャに依存しないファイルをにインストールしますPREFIXmake installコマンドを実行すると、ライブラリはPREFIX/libディレクトリに配置され、実行可能ファイルはディレクトリに配置さPREFIX/binれます。

この引数がconfigureコマンドに渡されない場合、デフォルト値は/usr/localです。

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