wiki:docs/making-rpm/subpkg

Version 1 (modified by yasumichi, 8 years ago) (diff)

--

Vine Linux ドキュメント / RPM パッケージの作成方法 / サブパッケージの作成方法

サブパッケージの作成方法

インストールされるファイル全体の容量が大きくなる場合、アプリケーションの実行時に必要なファイルのみを本体に収録し、他のファイルをサブパッケージ化することがあります。

たとえば、mule の RPM パッケージをつくるときに、本体の RPM パッケージが elc を含んでいれば、そのソースである el ファイルはなくても mule の実行には問題ないですから、 mule.rpm と mule-el.rpm みたいにわけたほうがよいかもしれません。

また、ライブラリや開発用ヘッダファイルもソースに含まれるアプリケーションをパッケージ化する時は、 アプリ本体の hoge.rpm と、開発者用に hoge.h を入れた hoge-devel.rpm にわけたいこともあるでしょう。 ドキュメントが大きいと、hoge-docs.rpm も別に作りたいこともあるでしょう。

こういうときには、ちょっと SPEC ファイルを変更するだけで、サブパッケージの作成をすることができます。 具体的には、サブパッケージ(ここでは、hoge のサブパッケージ hoge-docs とする)のための、 データ定義部(%package docs ではじまり、Group や Summary、%description docs などを書く部分)と、そのサブパッケージにいれるファイルを列挙した %files docs から始まるファイルリストを付け加えます。 具体例は、RPM-BUILD-HOWTO にもありますので、興味のある人はそちらを参照してください。

下の表によく使われるサブパッケージ名を記載しています。サブパッケージ作成時の参考としてください。

サブパッケージ名 収録内容
devel メインパッケージのライブラリを使うプログラムをコンパイルする際に必要なヘッダファイル(*.h)
libs ランタイムライブラリ *.so.*。本体パッケージのサイズがある程度大きくなった場合などの理由がある場合、本体にはバイナリや設定ファイルを、ライブラリを -libs サブパッケージに分けて収録することがあります。
static static ライブラリ (*.a)。明確な理由により static ライブラリを必要とする場合にサブパッケージ化する。それ以外の場合は、パッケージ対象から除外してください。
tools, utils 本体のパッケージが主にライブラリを収録している場合、ツールなどのバイナリやスクリプト群をサブパッケージ化する場合があります
doc, docs 付属ドキュメント類などを独立したサブパッケージに分けたもの
demos, exampleサンプルスクリプトやサンプルコード類をサブパッケージに分けたもの