次の 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_install
A)プロジェクトからファイルをインポートする方法はありますか?
B)2つのコマンドを実行しfind
てバイナリをdebian/tmp
ディレクトリにコピーすることは可能ですか?
C)ハックしてprintf
findコマンドをインストールするためにプレフィックスを追加する必要がありますか?../..
答え1
dh_install
通常、パッケージの最上位ディレクトリである現在のディレクトリへの相対パスを取得します。あなたの場合は、project_0.0-1
呼び出しfind
を出力する必要がありますproject/path/to/...
。はい、それも動作します。私がお勧めしたことを知っていますが、
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 {} + \;
私はこれがうまくいかないと思います。
(ほとんどの場合、メインビルドは特定のターゲットにバイナリをインストールできると期待していますが、これは別の議論です。)