这个本来很简单,但是安装过程中出现很多错误,在这做一下备忘录
我的环境的redhat 5,keepalived刚开始下载的是1.2.5
1.2.5版本安装
解压
./configure (加不加内核路径都一样)
make && make install
发现报错,信息如下
In file included from libipvs.c:25:
libipvs.h:99: error: expected ‘)’ before ‘union’
libipvs.c:882: error: expected ‘)’ before ‘fwmark’
感觉是语法错误,但是确实不好找,
最后发现是编译问题,我的linux内核是2.6.18,而编译那个语法需要2.6.3以上 ,折磨了一下午,没办法,只能重新下载版本1.2.2 这个版本网上用的好像很多,继续安装
./configure -with-kernel-dir 这步发现必须要加内核路径,不然会报错
make && make install 继续安装,发现又报错了
usr/include/time.h:105: error: conflicting types for ‘timer_t’
/usr/src/kernels/2.6.18-128.el5-i686/include/linux/types.h:31: error: previous declaration of ‘timer_t’ was here
这个错误,网上很多解决方案,也是linux编译遗留问题,解决方法如下
# vim ./keepalived/libipvs-2.6/ip_vs.h
将#include <linux/types.h>移动到#include <sys/types.h>后面去。
这样终于安装成功了。
然后cp keepalived.conf /etc/keepalived/ 移动配置文件到/etc/keepalived 下,因为启动默认对到/etc下读取文件
也可以把启动项移动到 cp keepalived /usr/sbin下 配个环境变量