RPMビルド環境を簡単に作成するためのツール "rpmdevtools" をインストールする。
$ sudo yum install rpmdevtools -y
あとビルドするのに必要な開発ツール郡などをインストールする。
$ sudo yum groupinstall "Development Tools" -y
RPMのビルドは一般ユーザの権限で行うことが推奨されているので、ここでは "mockbuild" ユーザを作成した上で、RPMビルド環境を作成する。
$ sudo useradd mockbuild && sudo passwd mockbuild
$ sudo su - mockbuild
(mockbuild)$ rpmdev-setuptree
これだけでRPMをビルドする環境が整うが、1つだけ設定を追記する。この設定により "SOURCES" 配下にパッケージ毎にディレクトリが作成され管理しやすい。
(mockbuild)$ vi ~/.rpmmacros
...
%_sourcedir %{_topdir}/SOURCES/%{name}-%{version}-%{release}.src
yumdownloader でSRPMを入手し、展開、specファイルを"~/rpmbuild/SPECS"へ配置する。
(mockbuild)$ cd ~/rpmbuild/SOURCES
(mockbuild)$ yumdownloader --source httpd
(mockbuild)$ rpmdev-extract httpd-2.4.10-15.fc21.src.rpm
(mockbuild)$ cp httpd-2.4.10-15.fc21.src/httpd.spec ../SPECS/
必要に応じて specファイル の内容を修正する。
(mockbuild)$ cd ../SPECS/
(mockbuild)$ vi httpd.spec
RPMをビルドする。もしも依存関係などで警告が出た場合、その内容に従い依存関係にあるパッケージをインストールする。
(mockbuild)$ rpmbuild -ba httpd.spec
RPMが作成された事を確認
(mockbuild)$ ls -la ../rpmbuild/build
Sylpheed を例にする。この場合SPECファイルがソース(tar.gz)内に入っているので、依存パッケージさえ解消すれば容易にRPMパッケージが作成出来る (無い場合は SOURCES にソースを置いて、SPECS SPECファイルを作成してごにょごにょ頑張る )
依存パッケージのインストール
$ sudo yum install glib2-devel gtk2-devel -y
ソースの入手とビルド
$ sudo su - mockbuild
(mockbuild)$ wget http://sylpheed.sraoss.jp/sylpheed/v3.4/sylpheed-3.4.2.tar.gz -P ~/rpmbuild/SOURCES/
(mockbuild)$ rpmbuild -ta ~/rpmbuild/SOURCES/sylpheed-3.4.2.tar.gz
パッケージのインストール
(mockbuild)$ exit
$ sudo yum install \
/home/mockbuild/rpmbuild/RPMS/i686/sylpheed-3.4.2-1.fc21.i686.rpm \
/home/mockbuild/rpmbuild/RPMS/i686/sylpheed-plugins-3.4.2-1.fc21.i686.rpm