エンタープライズ:特集 2003/10/17 11:50:00 更新


特集:第3回 tarボールからRPMパッケージを作るコツ (3/3)

SPECファイルリファレンス

 資料的な意味として、SPECファイルで記述されるタグ、及びマクロの中から代表的なものをピックアップしておこう。各行が何を意味するのかと疑問になった際、リファレンスとして参照してほしい。

1. プリアンプル部

タ グ
内     容
Name
パッケージ名(必須)
Version
バージョン(必須)
Relase
バージョンリリース(必須)
Summary
パッケージに関する情報を1行で記述する(必須)
Copyright
著作権の記述(必須)
Group
パッケージが所属するグループ名(必須)
Source
ソースファイル名(必須)
Patch
ソースファイルにあてるパッチファイル名
Require
このパッケージをインストールする際に依存するパッケージ名
PreRequire
リビルド、コンパイル時に必要なパッケージ名
Conflicts
このパッケージと競合する(共存できない)パッケージ名
Prefix
ファイルをインストールする際に使用する基準となるパス名
Buildroot
パッケージをコンパイルし、仮インストールする際に使うパス名
BuildArchitectures
パッケージが対象とするシステムアーキテクチャ
BuildConflicts
パッケージをビルドする際に競合するパッケージ名
BuildRequires
パッケージを作成する際に必要となるパッケージ名
%description
パッケージの詳細情報
%package
ひとつのSPECファイルで複数のパッケージを作成する際の名
%changelog
更新履歴

2. パッケージ作成部

タ グ
内     容
%prep
「umask 022」を実行し、BUILDディレクトリへ移動する
%setup
ソースファイルを解凍する
%patch
パッチファイルがあればそれをあてる
%build
コンパイルを実行するためのシェルスクリプト
%install
パッケージをインストールする際のシェルスクリプト
%clean
パッケージ作成後に行うシェルスクリプト

3. インストールアンインストール部

タ グ
内     容
%pre
バイナリパッケージをインストールする前に行うシェルスクリプト
%post
インストール後に行うシェルスクリプト
%preun
パッケージをアンインストールする前に行うシェルスクリプト
%postun
アンインストール後に行うシェルスクリプト

4. ファイルリスト部

タ グ
内     容
%files
パッケージに含まれるファイルリストをリストアップする
%defattr
ファイルのデフォルトグループ、ユーザーグループを指定する
%doc
「ドキュメントファイル」とするファイルをリストアップする
%config
「設定ファイル」となるファイルをリストアップする
%dir インストール時、パッケージが独自に使用するディレクトリを指定する

システムで標準設定されている変数もある

 SPECファイル中には「%{__libdir}」のように、「%define」で定義されない変数が利用される場合もある。この際には、システムで持っている標準設定変数が使われる。この変数は、「rpm --showrc |more」の指定で確認することが可能だ(標準値は大量なため、次のようにパイプ指定をしなければ大部分がスクロールしてしまうだろう)。

# rpm --showrc |more
ARCHITECTURE AND OS:
build arch : i386
compatible build archs: i686 i586 i486 i386 noarch
build os : Linux
compatible build os's : Linux
install arch : i686
install os : Linux
compatible archs : i686 i586 i486 i386 noarch
compatible os's : Linux

RPMRC VALUES:
macrofiles : /usr/lib/rpm/macros:/usr/lib/rpm/i386-linux/macros:/usr/
lib/rpm/redhat/macros:/etc/rpm/macros.specspo:/etc/rpm/macros.cdb:/etc/rpm/macro
s.prelink:/etc/rpm/macros.solve:/etc/rpm/macros.up2date:/etc/rpm/macros:/etc/rpm
/i386-linux/macros:~/.rpmmacros
optflags : %{__global_cflags} -march=i686

Features supported by rpmlib:
rpmlib(VersionedDependencies) = 3.0.3-1
PreReq:, Provides:, and Obsoletes: dependencies support versions.
rpmlib(CompressedFileNames) = 3.0.4-1
file name(s) stored as (dirName,baseName,dirIndex) tuple, not as path.
rpmlib(PayloadIsBzip2) = 3.0.5-1

〜以下略〜

 上記の内容を注意深く解読すると、マクロが実際にどのように動作するのかが分かる。また「RPMRC VALUES」にあるように、ホームディレクトリへ「.rpmmacros」ファイルを作成することで内容変更することも可能だ。ただし、これらはパッケージ作成に慣れた上級者向けであり、通常は標準値のままで構わないはずだ。

 この特集により興味を持ち、さらに仔細な情報が必要な際には、http://www.rpm.org/RPM-HOWTO/や、ドキュメントとして含まれる「Maximum RPM」を参照してみるとよいだろう。

関連記事
▼第2回 RPM活用のステップアップ−SRPMリビルドとコンパイルマスター
▼第1回 RPM活用でLinuxサーバ運用の手間を軽減

関連リンク
▼Linux チャンネル

前のページ | 1 2 3 |      

[渡辺裕一,ITmedia]