dh_auto_installのprefixとdestdirパラメータの違いは何ですか?

dh_auto_installのprefixとdestdirパラメータの違いは何ですか?

独自のDebianパッケージを作成してインストールしたいです/opt/A/B/C

オーバーレイdh_auto_installのドキュメントに示されているように、params--destdir=-- prefix=

Debian をインストールするには、次のように/opt/A/B/C指定できます。

override_dh_auto_install:
    dh_auto_install -- prefix=/opt/A/B/C

または

override_dh_auto_install:
    dh_auto_install --destdir=/opt/A/B/C

注:Ubuntu 14.04システムにdebをインストールする予定です。

答え1

dh_auto_install--destdir作成時にオプションとして認識されます。-- prefix=...これはオプションではなく、インストールを実行するために実行する必要があると判断するdh_auto_installすべてのプログラムに渡される引数です。dh_auto_install

しかし、dh_auto_installこれは達成しようとする目標に適したツールではないかもしれません。最終インストールプレフィックスは通常、インストール時間ではなく設定時間で指定されます。これを行うには、次を上書きする必要がありますdh_auto_configure

override_dh_auto_configure:
        dh_auto_configure -- --prefix=/opt/A/B/C

答え2

あなたは間の違いを知る必要がありますプレフィックスそしてターゲットディレクトリ(destdir):

プレフィックス- バイナリファイルの前に追加されるパス。

宛先ディレクトリ- バイナリの位置です。

一般的に(最も広く使用されている方法)、ソースコードからバイナリを生成するワークフローは次のとおりです(単なる例です)。

  1. ./configure --prefix=/prepend/path ...
  2. make ...
  3. make install DESTDIR=/path/for/binaries

ご覧のとおり、プレフィックス構成ステップで設定します。

ステップ3の後、ビルドされたファイルがインストールされ/path/for/binariesます/path/for/binaries/prepend/path

debianパッケージをビルドすると、ソースコードを含むディレクトリとその中にディレクトリが作成されます。

プログラムを見つける必要がある場合は、/opt/A/B/C上書きする必要がありますdh_auto_configure人1 dh_auto_configure) 目標はdebian/rules次のとおりです。

override_dh_auto_configure:
    dh_auto_configure -- --prefix=/opt/A/B/C 

このステップは、回答を要求したときに述べたステップ1に対応します。

これで書き直す必要はありませんdebian/rules


@StephenKittは、dh_auto_installこの質問に対するコメントで良い説明を提供しました。

関連情報