パッケージング システムがなければ、(B) バイナリ コードに変換/コンパイルできる (A) ソース コードがあります。
debian/ubuntu パッケージの場合、(1) ソース コード、(2) ソース パッケージ - dscファイル、(3) バイナリ パッケージ - debファイルがあります。(1)と(3)に関連する(2)のソースパッケージはどうですか?なぜそれが必要なのですか?そして、最も重要な質問: (1) から (2) と (3) を生成するワークフローは何ですか?
パッケージング システムがなければ、(B) バイナリ コードに変換/コンパイルできる (A) ソース コードがあります。
debian/ubuntu パッケージの場合、(1) ソース コード、(2) ソース パッケージ - dscファイル、(3) バイナリ パッケージ - debファイルがあります。(1)と(3)に関連する(2)のソースパッケージはどうですか?なぜそれが必要なのですか?そして、最も重要な質問: (1) から (2) と (3) を生成するワークフローは何ですか?
ワークフローは通常、おおよそ次のようになります。
Debian の誰かがソース コードをダウンロードし、
ソースを Debian でビルドし、Debian ガイドラインに準拠させるためのパッチ ファイルのセット。走る
curl -s 'http://archive.ubuntu.com/ubuntu/pool/universe/s/splint/splint_3.1.2.dfsg1-2.diff.gz' | gunzip -dc | less
サンプルパッケージについてこれを確認します。
.dsc
— これはファイルとdebian/control
ファイルです。「DSC」は Debian Source Control の頭字語です。.deb
パッケージは、Debian 固有のパッチが適用された元のアップストリーム ソース コードから各アーキテクチャ用にビルドされます。以下はそのようなファイルの 1 つです。Debian Binary Package Building HOWTOでは、これらのファイルの形式と検査方法について説明しています。この.dsc
ファイルはビルド ロジックには使用されず、メタデータに使用されます。ただし、途中で多くのツールがそれを必要とします。たとえば、Build-Depends:
フィールドは必要なビルドの依存関係をインストールするために使用されます。
実際にはそれよりもはるかに複雑です。Debian パッケージの背後にある考え方は、ページを構築するために必要なすべての情報が含まれているということです。通常、ソースは、そのパッケージと対話する他のパッケージの依存関係を記述しdebian
たファイルを含むディレクトリを含むように変更されます (たとえば、仮想パッケージの分割、置換、提供)。control
ファイルには、パッケージのビルドとインストールのrules
方法が説明されています。単一のソース パッケージが多数のバイナリ パッケージになる可能性があるため、パッケージ化の方法についても説明します (例: 、foo-utils
、libfoo0
) libfoo-dev
。debuild
実際にこの情報を読み取り、コンパイルを行い、バイナリ パッケージを生成します。微妙な点:foo
を使用しlibbar-dev
ている場合、実際にはどのバージョンのlibbar
私が使用するバイナリパッケージ。pbuilder
クリーンな環境で実行debuild
されるため、明示的に指定していないものに対してコンパイルする可能性はありません。
詳細については、Debian New Maintainers' Guideを参照してください。