質問: アップストリームソースアーカイブを指定してdebianパッケージで2つのパッケージを生成するにはどうすればよいですか? 私はppa用に何かを包装しています。アップストリームソースは、makefileベースの.tar.gzアーカイブです。このパッケージにはアーキテクチャに依存しない大量のデータがあるため、ビルドスクリプトで2つのパッケージを生成することをお勧めします。 パッケージ パッケージ-データ これを設定するにはどうすればよいですか? debian controlファイルを編集して2つのパッケージを生成しましたが、適切なファイルを適切なパッケージに取得する方法がわかりません。現在、データファイルはすべてmakefileを介してインストールされているため、ここで紛失しました。
回答: これは、ドキュメントが不足していることを常に見つけてきた場所です。私はこれが他のパッケージでどのように行われるかを見て、これがどのように機能するかをほとんど学びました。 debianパッケージングのほとんどのものと同様に、これを行う方法がいくつかあります。最も簡単な方法は、debian/package.installファイルを使用することです。これが私が取り組んだパッケージの例です imagination(bzr branch) 。まず、パッケージを debian/control で作成する必要があります。現在、3つのスタンザがあります。 1つはソースパッケージ用で、もう1つは各バイナリパッケージ用です。 foo-dataパッケージはarchitecture: allでなければなりません。また、想像力はimagination-common (= ${source:version})に依存することに注意してください。次に、debian/imagination.installファイルを作成します。これには、想像パッケージに含める特定のファイルまたはパスが含まれます。このパッケージには、すべてのアーキテクチャ依存ファイルが必要です。デスクトップファイルは、exec:行で呼び出すバイナリと言う必要があるため、含まれています。usr/bin/ usr/lib/ /usr/share/applications/imagination.desktop debian/imagination-common.installファイルを作成する必要があります。これには、アーキテクチャに依存しないすべてのファイル、画像、翻訳、ドキュメントなどが含まれます。/usr/share/doc/ /usr/share/icons/ /usr/share/imagination/ /usr/share/locale/ man dh_installは、実際にここで何が起こっているかを説明しています。 多分、あなたは複数のバイナリパッケージをビルドする大きなパッケージを持っているでしょう。アップストリームmakefileを使用してすべてをdebian/tmpにインストールし、dh_installを使用してそこからディレクトリとファイルを適切なパッケージビルドディレクトリにコピーします。 「適切なパッケージビルドディレクトリ」とは、ビルドプロセスの終わりまでに、結果のfoo.debにあるすべてのものがsrc/debian/fooにあることを意味します。 foo-data.debで終わるファイルはsrc/debian/foo-dataにあります。 debian/rulesは本質的に単なるmakefileであるため、同じ結果を得る他の方法を想像することができます。