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

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

たとえば、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にもありますので、興味のある人はそちらを参照してください。

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

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