Boostは複雑な例です。最初に簡単な例を見てみましょう。
正確には、opensslソースパッケージは5つのバイナリパッケージを提供します。
libssl1.0.0
OpenSSL動的ライブラリ、バージョン1.0.0が含まれています。それが、このライブラリにリンクされたプログラムを実行する必要があるものです。パッケージ名にはバージョン番号が含まれています。これは、1.0.0とバイナリ互換ではない別のバージョンに対して他のプログラムがリンクされている場合、ライブラリの他のバージョンが同時にインストールされる可能性があるためです。
openssl
OpenSSLライブラリを使用するコマンドラインツールが含まれています。ライブラリのバージョンが複数ある場合でも、これらのツールの複数のバージョンは必要ありません/usr/bin/openssl
。関連するツール、データ、およびドキュメントは1つだけです。
libssl-dev
OpenSSLにリンクするプログラムをコンパイルする場合に必要なファイルが含まれています。Cヘッダーファイル(*.h
)、リンク用ライブラリ(*.a
、*.so
)、およびいくつかの分類されたファイルがあります。
libssl-doc
OpenSSLライブラリのドキュメントが含まれています。ライブラリを使用するプログラムを作成する場合にのみ、このパッケージが必要です。
libssl1.0.0-dbg
デバッグシンボルが含まれています。OpenSSLライブラリまたはそれを使用するプログラムをデバッグする人にのみ役立ちます。andrewsomethingの回答には、これらの-dbg
パッケージに関する詳細情報が含まれています。
さらに、preciseには古いバージョンのライブラリが含まれていlibssl0.9.8
ます。これは、古いバージョンに対してリンクされているプログラムがまだあるためです。
あなたが見るかもしれない他のパッケージは、C以外の言語のバインディングです。OpenSSLには何も付属していません(他の言語のOpenSSLへのバインディングがありますが、それらは同じソースから来ません)。例はsqlite3で、TCLバインディングが付属しています。
このようにパッケージを分割する主な理由は、パッケージごとにターゲットオーディエンスが異なるためです。誰も何もコンパイルしないシステムには、コアlib
パッケージとコマンドラインツールのみが必要です。必要に応じて、依存関係から自動的にインストールされます。ライブラリを使用するプログラムをコンパイルする場合は、-dev
パッケージが必要です。誰かがライブラリを使用するプログラムを作成する場合は、-doc
パッケージが必要です。
では、Boostはどうですか?これは、同じ構造に従うが、ブーストは巨大なライブラリですので、それは多くの小型パッケージに分けています:libboost-*1.46.1
とlibboost-*1.46-dev
。厳密には、Boostのバージョンは1.46だけですが、oneiricには1.42と1.46の両方がありました。バージョン管理されたパッケージを依存関係として取り込むメタパッケージboost-defaultsもあります。
libhangulを見ると、動的ライブラリパッケージlibhangul1
と開発パッケージに加えて、パッケージlibhangul-dev
がありますlibhangul-data
。このパッケージには、ライブラリに必要な追加データが含まれています。ライブラリのバージョンが複数ある場合でも、-data
パッケージを共有できます。また、パッケージはアーキテクチャに依存しません。大量のアーキテクチャに依存しないデータを含むソフトウェアは、配信サイトのスペースを節約するために、アーキテクチャに依存するパッケージとアーキテクチャに依存しないパッケージに分割されます。同様の意味を持つ別の接尾辞は-common
です。
UbuntuとDebianのパッケージングルールは非常に似ているため、Debianパッケージの作成に関する資料はUbuntuにも適用されます。実際、DebianとUbuntuで同じソースパッケージを使用できます。DebianとUbuntuパッケージを異なるものにしている唯一のことは、異なるライブラリバージョンに対してそれらをコンパイルすることであり、それはUbuntuの異なるリリース間の違いにすぎません。持っているDebianの開発者向けドキュメントを手に、特にDebianポリシーマニュアルおよび開発者のリファレンス。導入については、新しいメンテナーガイドを参照してください。Debianプロジェクトでの作業などに関する部分は無視してください。パッケージの作成に関する部分を読んでください。dh_make
debパッケージを始めるには良い方法です(「ライブラリ」を選択することをお勧めします)。