サブパッケージの作成方法
インストールされるファイル全体の容量が大きくなる場合、アプリケーションの実行時に必要なファイルのみを本体に収録し、他のファイルをサブパッケージ化することがあります。
たとえば、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 | サンプルスクリプトやサンプルコード類をサブパッケージに分けたもの |