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] エラー 1specファイルを眺めてみた感じ、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