私は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であるため、同じ結果を得る他の方法を想像することができます。