回答:
./configure --prefix=***
番号1は、パッケージがインストールされるときの移動先、および実行時に関連ファイルを探す場所を決定します。単一のホストで使用するために何かをコンパイルしているだけの場合に使用します。
make install DESTDIR=***
番号2は、パッケージの実行元ではない一時ディレクトリにインストールするためのものです。たとえば、これはdeb
パッケージをビルドするときに使用されます。パッケージをビルドする人は、実際にはすべてを自分のシステムの最終的な場所にインストールするわけではありません。彼はすでに別のバージョンをインストールしていて、邪魔したくないかもしれませんし、rootでさえないかもしれません。だから彼は
./configure --prefix=/usr
したがって、プログラムは/usr
実行時にインストールされることを期待します。
make install DESTDIR=debian/tmp
実際にディレクトリ構造を作成します。
make install prefix=***
3番は別の場所にインストールしますが、すべてのディレクトリを作成するわけではありませんDESTDIR=/foo/bar/baz
。GNU stowで一般的に使用されます。
./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
ます。
mv usr/local/* . && rmdir usr/local && rmdir usr
通常はディレクトリ構造を修正する必要がありました-使用するprefix=
方がはるかに優れています!
DESTDIR=/tmp/foo make install
。cmakeベースのプロジェクトの場合、私はcmake -DCMAKE_INSTALL_PREFIX=/tmp/test1 -P cmake_install.cmake
にインストールできる運が良かった /tmp/foo/{bin,...}
です。例については、github.com / opencv / opencv / issues / 11833#issuecomment-401164056を参照してください。
DESTDIR
と一緒にprefix
使用できます。make install
make install DESTDIR=/foo/bar/tmp perfix=/local
これはDESTDIR
、--prefix
(ここから)の使用を説明するのに役立ちます:
--prefixとDESTDIRを使用した複数のインストール:
構成時に、ビルドごとに異なる--prefixの場所/オプションを指定します。たとえば:
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
から openssl/INSTALL
標準の場所のライブラリを構成したいが、簡単にパッケージできるようにパッケージを別の場所にインストールして、使用できるパッケージビルダー
$ make INSTALL_PREFIX=/tmp/package-root install
(または、設定オプションとして「--install_prefix = / tmp / package-root」を指定します)。指定されたプレフィックスは、すべてのインストールターゲットファイル名の先頭に追加されます。
これは非標準ですが、INSTALL_PREFIXは他のいくつかのプログラムで使用されています。
これは、1.1.xより前のOpenSSLバージョンで機能します。OpenSSL 1.1.x以降では、通常の認識が可能DESTDIR
です。
cmake -DCMAKE_INSTALL_PREFIX=/foo/bar/baz -P cmake_install.cmake
では、ビルドディレクトリで実行することにより、(stowなどの)「ケース4」をエミュレートできます。