RPMパッケージの作成方法

Nishii Jun [FAMILY Given]

編者:

Akahoshi Yasumichi [FAMILY Given]

編者:

HARADA Kazutaka [FAMILY Given]

編者:

Kobayashi Takuya [FAMILY Given]

概要

この文書は、Vine Linux上で動くアプリケーションをRPMパッケージ化する方法を解説しています。

初めてRPMパッケージを作成する方を主な対象としておりますが、他のドキュメントでは分かりにくいあるいは触れられていない点に注意して説明していますので経験者にも参考になる点があります。

なお、RPMパッケージのインストール方法やシェルスクリプト、基本的なコマンドの使い方は省略しております。


目次

用語の解説
I. 環境設定
1. 設定ファイル
2. パッケージ作成に必要なディレクトリの準備
3. パッケージ署名の設定
II. 基本的なパッケージ作成の流れ
4. パッケージ作成毎の準備
4.1. パッケージ化対象アプリケーションの情報収集
4.2. アプリケーションのビルド・実行に必要なパッケージのインストール
4.3. パッチの用意
5. SPECファイルの記述
5.1. パッケージ情報の記述
5.2. スクリプト部
5.3. ファイルリスト部
5.4. パッケージの更新履歴
6. SPECファイルをもとにRPMパッケージを作成する
7. パッケージ作成後に確認すること
III. より高度なパッケージ作成のための情報
8. 環境変数とマクロの活用
8.1. 環境変数
8.2. SPECファイル中のマクロ定義
8.3. 標準で定義されているマクロ
9. 依存情報の記述に関する詳細
9.1. Requires
9.2. Provides
9.3. BuildRequires
9.4. BuildPrereq
10. %setupマクロの詳細
11. スクリプト部で使用できるその他のセクション
11.1. %preセクション
11.2. %postセクション
11.3. %preunセクション
11.4. %postunセクション
11.5. %triggerinセクション
11.6. %verifyscriptセクション
12. サブパッケージの作成方法
13. パッケージ固有の作法等について
13.1. GNOME,KDE,Xfce のメニューに追加するために
13.2. Emacs Lisp のパッケージ
13.3. alternatives を利用するパッケージ
13.4. GConf2を利用するパッケージ
13.5. ライブラリのパッケージングポリシー
A. RPMパッケージをつくるときの注意
A.1. シンボリック・リンク等を%postとかで張らない
A.2. むやみに Epoch を使わない。
A.3. あまり細かくサブパッケージに分けない
A.4. %configは乱用しない
A.5. patchを使いすぎない
A.6. SPECファイルは第三者にもわかりやすくする
B. Vine Linux で使用できるGroup一覧
C. パッケージ作成に必要なディレクトリの変更方法
D. SPECファイルで使用できる便利なタグ
E. 更新記録(1999/2/16以降)
F. さらに深く知りたい方へ

表目次

2.1. パッケージ作成に必要なディレクトリ名と使用目的
5.1. 基本情報で使用されるタグ
5.2. パッケージ作成時に必要となるタグ
5.3. パッケージの依存関係を扱うタグ
5.4. スクリプト部のセクション
5.5. %verify の ( ) の中で指定できるもの
6.1. スクリプト部の検証オプション
9.1. Requires の ( ) の中で利用できるもの
9.2. BuildRequires の ( ) の中で利用できるもの
11.1. インストール時やアンインストール時に起動するセクション
11.2. 他のパッケージがインストールされた時に起動するセクション
11.3. パッケージの検証時に起動するセクション
12.1. 一般的なサブパッケージ名
B.1. Vine Linux で使用できるGroup一覧
C.1. ディレクトリ制御用マクロ

例目次

4.1. パッケージの存在を確認する
4.2. gtk+-2.xを必要とする場合
5.1. パッケージ情報の記述例
5.2. ghostscriptのバージョン5.10がパッケージの動作に必要な場合
5.3. gtk2-develのバージョン2.16.0以上がパッケージの作成に必要な場合
5.4. 一行で記述する例
5.5. 複数行に分けて記述する例
5.6. スクリプト部の記述例
5.7. ファイルリスト部の例
5.8. パッケージの更新履歴の例
7.1. *-develパッケージをアンインストールするシェルスクリプト
11.1. %postセクションを利用してinfoファイルをインストールする例
11.2. ライブラリをインストールする後にldconfigを実行する例
11.3. %postセクションで-pオプションを使用して問題が起こる例
11.4. %preunセクションを利用してinfoファイルをアンインストールする例
11.5. %triggerinセクションの使用例
C.1. トップディレクトリの変更例