1. ホーム
  2. c

[解決済み] makeのDESTDIRとPREFIX

2022-02-01 02:56:22

質問事項

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

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

この3つの機能について、私は混乱しています。この3つは同じ目的を達成するのでしょうか?

どのように解決するのですか?

<ブロッククオート

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