エンタープライズ:特集 | 2003/10/17 11:50:00 更新 |
特集:第3回 tarボールからRPMパッケージを作るコツ (3/3)
SPECファイルリファレンス
資料的な意味として、SPECファイルで記述されるタグ、及びマクロの中から代表的なものをピックアップしておこう。各行が何を意味するのかと疑問になった際、リファレンスとして参照してほしい。
1. プリアンプル部
|
2. パッケージ作成部
|
3. インストールアンインストール部
|
4. ファイルリスト部
|
システムで標準設定されている変数もある
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 チャンネル
[渡辺裕一,ITmedia]