Scientific Linux 5.3でkvm上にrpmbuild環境を作成(2)

Scientific Linux 5.3でkvm上にrpmbuild環境を作成(1) / それぞれのサービスの機能 - ytokuがつまずいた跡の続き。

SSHでログインできるように設定してビルド用のユーザを作った。


二回目以降のコンパイルの効率化を期待してccacheを導入することにした。ccacheはdagにある物を使うことにする。dagから余計な物がインストールされないようにyum-prioritiesプラグインを設定しておく。
参考: yumのまとめ - 3.yumプラグインの説明とインストール手順 - 一分一秒真剣勝負!

# yum -y install yum-priorities

次にpriorityの設定……と思いきや/etc/yum.repos.d/にdag.repoがあった。まだ追加していなかったのだが、どうやらCentOSと違い最初から配置されているらしい。しかもご丁寧にpriorityまで設定済みだ。そのままdagをenable=1にして、ccacheをインストールした。
ccacheを使うため、ビルド用のユーザにPATHを設定……ログインしてみたらこれも必要なかった。/etc/profile.d/ccache.shでログイン時にPATHに/usr/lib/ccache/binを加えるようになっていた。実に気が利きすぎで涙が出てくる。


ビルド用のユーザでディレクトリを掘って

$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

~/.rpmmacrosを以下の内容で作った。各ソースパッケージの中身が衝突しないよう、SOURCES下だけはパッケージ別のサブディレクトリを用意した。

%_topdir                /home/packaging/rpmbuild
%_builddir              %{_topdir}/BUILD
%_rpmdir                %{_topdir}/RPMS
%_sourcedir             %{_topdir}/SOURCES/%{name}
%_specdir               %{_topdir}/SPECS
%_srcrpmdir             %{_topdir}/SRPMS

これで一通り設定が終わったのでテストのビルドを行ったところ正常にrpmが生成された。


ところで、ターゲットアーキテクチャi686としたい。.rpmmacrosや.rpmrcでデフォルトのアーキテクチャを設定する方法がわからなかったので、~/.bashrcでのalias設定で妥協した。

alias rpmbuild='rpmbuild --target i686'