RPMビルドしてインストールしようと思ったら少しハマったのでメモです。
必要そうなものをインストール。
yum install rpm-build make gcc openssl-devel popt-devel kernel-devel ipvsadm
RPMビルド環境の準備。
eval echo "%_topdir ~/rpm" > ~/.rpmmacros mkdir -p ~/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
ソースファイルをダウンロードして展開。
cd /usr/local/src wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz cp keepalived-1.2.2.tar.gz ~/rpm/SOURCES tar xzvf keepalived-1.2.2.tar.gz cd keepalived-1.2.2 chown -R root:root .
RPMビルド。
./configure --with-kernel-dir=/lib/modules/`uname -r`/build make rpm
ここで次のようなエラーが発生してRPMの作成に失敗しました。
+ umask 022 + cd /root/rpm/BUILD + cd keepalived-1.2.2 + grep -q 'IPVS_SUPPORT='\''_WITH_LVS_'\''' config.log + echo 'ERROR: We do not want keeepalived lacking LVS support.' ERROR: We do not want keeepalived lacking LVS support. + exit 1 エラー: /var/tmp/rpm-tmp.berVpR の不正な終了ステータス (%check) RPM ビルドエラー: /var/tmp/rpm-tmp.berVpR の不正な終了ステータス (%check) make: *** [rpm] エラー 1
specファイルを眺めてみた感じ、configure で --with-kernel-dir が上手く設定されていないことが原因な気がしたので・・・
cp keepalived.spec keepalived.spec.orig vi keepalived.spec
「%define kernel」の行を次のように書き換え。
%define kernel %(uname -r)
差分は次の通り。
diff -u keepalived.spec.orig keepalived.spec --- keepalived.spec.orig 2011-11-28 22:29:15.188033467 +0900 +++ keepalived.spec 2011-11-28 23:00:22.562539487 +0900 @@ -2,7 +2,7 @@ # Authority: dag # Ugly, but we need headers from a kernel to rebuild against -%define kernel %(rpm -q kernel-devel --qf '%{RPMTAG_VERSION}-%{RPMTAG_RELEASE}\\n' 2>/dev/null | head -1) +%define kernel %(uname -r) Summary: HA monitor built upon LVS, VRRP and services poller Name: keepalived
もう一度ビルドしてみる。
make rpm
成功したっぽいです。
ls ~/rpm/RPMS/x86_64/ keepalived-1.2.2-5.x86_64.rpm