rpmbuildコマンドによるrpmファイルの作成

rpmbuildコマンドを使い、自分の環境に合ったrpmを作成する。

SRPMファイルから作成する場合

SRPMファイルは通常拡張子が「.src.rpm」となっている。
このファイルをrpmコマンドにより、インストールする。
例として「vsFTPd」をインストールする。

[root@Fedora ~]# rpm -ivh vsftpd-2.0.3-1.src.rpm <= SRPMファイルのインストール

SRPMパッケージをインストールすると、
/usr/src/redhat/SOURCES
ディレクトリ以下に、tarballやパッチファイルがインストールされ、
/usr/src/redhat/SPECS
ディレクトリ以下にspecファイルがインストールされる。

/usr/src/redhat/ 以下のディレクトリに作成されるファイルは以下の通り。

ディレクトリ 説明
SPECS 各ソフトウェアのRPMを作成するためのspecファイルが保存される。
SOURCES 各ソフトウェアのソースファイルやパッチファイルが保存される。
BUILD 各ソフトウェアを構築(コンパイル等)するのに使用される作業ディレクトリ。
SRPMS 作成したSRPMファイルが保存される。
RPMS 作成したRPMファイルが該当アーキテクチャのサブディレクトリ以下に保存される。
サブディレクトリには
athlon、i386、i486、i586、i686、noarch
がある。

インストールされたspecファイルやソースファイルを編集したり追加のパッチを加えたりして、 rpmbuildコマンドによりrpmファイルを作成する。
rpmbuildコマンドの書式は以下の通り。

[root@Fedora ~]# rpmbuild オプション specファイルのパス

rpmbuildコマンドの主なオプションは以下の通り。

オプション 説明
-bp 「%prep」セクションまでの処理を行う。
-bc 「%build」セクションまでの処理を行う。
-bi 「%install」セクションまでの処理を行う。
-bb RPMファイルのみ作成する。
-bs SRPMファイルのみ作成する。
-ba RPMファイルとSRPMファイルを作成する。
--rebuild SRPMファイルから直接、RPMファイルを作成する。
--clean ソフトウェア構築作業時に使用したディレクトリを削除する。
(通常、/usr/src/redhat/BUILD以下のディレクトリ)
--sign RPMファイルにGPGで署名を入れる。

「vsFTPd」のspecファイルやソースファイルを編集等した後、rpmbuildコマンドによりrpmファイルを作成し、 インストールする場合。

[root@Fedora ~]# rpmbuild -bb --clean /usr/src/redhat/SPECS/vsftpd.spec <= rpmファイルの作成
[root@Fedora ~]# rpm -ivh /usr/src/redhat/RPMS/i386/vsftpd-2.0.3-1.rpm <= rpmファイルのインストール
tarballから作成する場合(tarball内のspecファイル利用)

tarball内にRPM構築に必要なspecファイルが含まれているものとする。
この場合のrpmbuildコマンドの書式は以下の通り。

[root@Fedora ~]# rpmbuild オプション tarballのパス

rpmbuildコマンドの主なオプションは以下の通り。

オプション 説明
-tp 「%prep」セクションまでの処理を行う。
-tc 「%build」セクションまでの処理を行う。
-ti 「%install」セクションまでの処理を行う。
-tb RPMファイルのみ作成する。
-ts SRPMファイルのみ作成する。
-ta RPMファイルとSRPMファイルを作成する。

例として「ProFTPD」をインストールする。

[root@Fedora ~]# rpmbuild -tb proftpd-1.2.10.tar.bz2 <= rpmファイルの作成
[root@Fedora ~]# rpm -ivh /usr/src/redhat/RPMS/i386/proftpd-1.2.10.rpm <= rpmファイルのインストール
▲ページのトップへ