Dpkg dh_install:debian / tmpディレクトリの代わりにビルドディレクトリからファイルをコピーしますか?

Dpkg dh_install:debian / tmpディレクトリの代わりにビルドディレクトリからファイルをコピーしますか?

次の Debian パッケージシェルがあるとします。

project_pkg/
  .git
  project_0.0-1/
     debian/
        install
        ...
     project (git submodule with tagged commit)

次のインストールファイルを使用してください。

// .../debian/install
#!/usr/bin/env bash
find $(pwd)/project/path/to/binaries -type f -executable -printf "$(pwd)/project/path/to/binaries/%f usr/bin\n"

たとえば、プロジェクトには、パッケージングに必要なすべてのファイルを生成するエントリmakeポイントがあります。make -C project build

これで、パッケージングプロセス全体のビルド/ビルドコンポーネントが正常に機能します。ただし、理想的には、インストールフォルダにインストールする必要があるすべての必須ファイルを見つけることができます。

今、プロジェクトのバイナリを外部debian/tmp/または 。/debian/debian/rules

ただし、これを行う方法がある場合は、dh_installプロジェクトからファイルをインポートするように簡単に設定できます。

dh_installA)プロジェクトからファイルをインポートする方法はありますか?

B)2つのコマンドを実行しfindてバイナリをdebian/tmpディレクトリにコピーすることは可能ですか?

C)ハックしてprintffindコマンドをインストールするためにプレフィックスを追加する必要がありますか?../..

ベストアンサー1

  1. dh_install通常、パッケージの最上位ディレクトリである現在のディレクトリへの相対パスを取得します。あなたの場合は、project_0.0-1呼び出しfindを出力する必要がありますproject/path/to/...

  2. はい、それも動作します。私がお勧めしたことを知っていますが、dh_install最初のルールdebhelperはまだ自分に適したツールであるということです。スキップが簡単な場合は、次のことをお勧めします。

    override_dh_install:
            install -d debian/package/usr/bin
            find project/path/to/binaries -type f -executable -exec install -t debian/package/usr/bin {} + \;
    
  3. 私はこれがうまくいかないと思います。

(ほとんどの場合、メインビルドは特定のターゲットにバイナリをインストールできると期待していますが、これは別の議論です。)

おすすめ記事