Dpkg Debuild dh_helper:/opt/packageにインストールされているバイナリを/usr/local/binにシンボリックリンクする方法は?

Dpkg Debuild dh_helper:/opt/packageにインストールされているバイナリを/usr/local/binにシンボリックリンクする方法は?

私は最初のDebianプロジェクトをパッケージ化しており、問題を100%解決しましたgnu-make(私にとってはここで何でも可能なので、今私の問題は完全にナビゲーションdpkg/debuildシステムにあります)。

これで、次のルールファイルと互換性のあるダミーコンパイルが行われました。

// debian/compat
10

// debian/rules

#!/usr/bin/make -f
%:
  dh $@

override_dh_auto_install:
  cat binaries.txt | xargs -I arg install -D -m 0755 arg $$(pwd)/debian/package/opt/package/arg

すべてのコンパイルファイルとソースファイルがインクルードdebianディレクトリのmakeを介して管理されていると仮定すると、期待どおりに動作する最小限のケースがあります。

// binaries.txt
foo
bar

単純なmakeプロセスによって生成されたダミーバイナリを一覧表示するバイナリファイル。

ここのドキュメントに従って、deb_helper私のバイナリをシンボリックリンクするためのシンボリックリンクを作成しようとしています。/opt/package/usr/local/bin

https://manpages.debian.org/stretch/dpkg/dpkg-maintscript-helper.1.en.html

しかし、私は運があまり良くなかった。これの手順は何ですか?

答え1

パッケージにシンボリックリンクを送信するには、次を使用することをお勧めします。dh_link。最も簡単な方法は、必要なシンボリックリンクをリストすることですdebian/links(またはdebian/package.linksソースパッケージが複数のバイナリパッケージを構築する場合)。

opt/package/bin/foo usr/bin/foo
opt/package/bin/bar usr/bin/bar

Debianパッケージはその下にファイルを提供しないため、/usr/localビルドツールはそれをうまくサポートしていません。

で他のものが必要ない場合は/opt/packageバイナリを/usr/bin

また、使用することができますdh_installインストールを簡素化するには、インストールするバイナリを一覧表示しますdebian/install

foo opt/package/bin
bar opt/package/bin

または

foo usr/bin
bar usr/bin

dh_auto_installその後、オーバーレイを削除できます。

関連情報