149

特定のディレクトリにソフトウェアをインストールしようとしています。私はいくつかの方法を見つけましたが、それらの違いは何ですか。

  1. ./configure --prefix=***
  2. make install DESTDIR=***
  3. make install prefix=***

私はこれら3つの機能について混乱しています。彼らは同じ目標を達成していますか?

4

3 に答える 3

223

./configure --prefix=***

番号1は、パッケージがインストールされたときにパッケージが移動する場所と、実行時に関連ファイルを検索する場所を決定します。単一のホストで使用するために何かをコンパイルするだけの場合は、これを使用する必要があります。


make install DESTDIR=***

2番目は、パッケージの実行元ではない一時ディレクトリにインストールするためのものです。たとえば、これはdebパッケージをビルドするときに使用されます。パッケージを作成する人は、実際には自分のシステムの最終的な場所にすべてをインストールするわけではありません。彼はすでに別のバージョンをインストールしていて、それを邪魔したくないかもしれません。あるいは、彼はルートでさえないかもしれません。だから彼は使用します

./configure --prefix=/usr

/usrしたがって、プログラムは実行時にインストールされることを期待します。

make install DESTDIR=debian/tmp

実際にディレクトリ構造を作成します。


make install prefix=***

3番目は別の場所にインストールしますが、すべてのディレクトリを作成するわけではありませんDESTDIR=/foo/bar/baz。これは、GNUstowを介して一般的に使用されます

./configure --prefix=/usr/local && make && sudo make install prefix=/usr/local/stow/foo

、にバイナリをインストールし/usr/local/stow/foo/binます。比較すると、

make install DESTDIR=/usr/local/stow/foo

にバイナリをインストールし/usr/local/stow/foo/usr/local/binます。

于 2012-07-03T09:09:19.673 に答える
1

DESTDIRこれは、との使用法を説明するのに役立ちます--prefixここから):

--prefixとDESTDIRを使用した複数のインストール:

構成時に、ビルドごとに異なる(プレフィックスの場所/オプション)を分離します。例:

untar petsc tar ball
./configure --prefix=/opt/petsc/petsc-3.9.0-mpich --with-mpi-dir=/opt/mpich
make
make install DESTDIR=/tmp/petsc-pkg
untar petsc tar ball
./configure --prefix=/opt/petsc/petsc-3.9.0-openmpi --with-mpi-dir=/opt/openmpi
make
make install DESTDIR=/tmp/petsc-pkg
于 2018-04-27T14:31:14.193 に答える
0

からopenssl/INSTALL

ライブラリを標準の場所用に構成したいが、パッケージを別の場所にインストールして簡単にパッケージ化できるようにしたいパッケージビルダーは、次を使用できます。

$ make INSTALL_PREFIX=/tmp/package-root install

(または、configureオプションとして「--install_prefix = / tmp / package-root」を指定します)。指定されたプレフィックスは、すべてのインストールターゲットファイル名の前に付加されます。

これは非標準ですが、INSTALL_PREFIXは他のいくつかのプログラムで使用されています。

これは、1.1.xより前のOpenSSLバージョンで機能します。OpenSSL 1.1.x以降は、通常のを認識できDESTDIRます。

于 2019-04-16T16:42:06.120 に答える