[root@wenlf136 ipvsadm-1.24]# uname -r
2.6.18-308.1.1.el5
[root@wenlf136 lvs]# ln -s /usr/src/kernels/2.6.18-308.1.1.el5-i686 /usr/src/linux
[root@wenlf136 lvs]# cd ipvsadm-1.24
[root@wenlf136 ipvsadm-1.24]# make
make -C libipvs
make[1]: Entering directory `/usr/src/soft/lvs/ipvsadm-1.24/libipvs'
gcc -Wall -Wunused -Wstrict-prototypes -g -O2 -I/usr/src/linux/include  -DHAVE_NET_IP_VS_H -c -o libipvs.o libipvs.c
在包含自 libipvs.c:23 的文件中:
libipvs.h:14:23: 错误:net/ip_vs.h:没有那个文件或目录
In file included from libipvs.c:23:
libipvs.h:119: 错误:expected ‘)’ before ‘fwmark’
libipvs.c:27: 错误:字段 ‘svc’ 的类型不完全
libipvs.c:28: 错误:字段 ‘dest’ 的类型不完全
libipvs.c: In function ‘ipvs_init’:
libipvs.c:40: 错误:‘sizeof’ 不能用于不完全的类型 ‘struct ip_vs_getinfo’
libipvs.c:44: 错误:‘IP_VS_SO_GET_INFO’ 未声明 (在此函数内第一次使用)
libipvs.c:44: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
libipvs.c:44: 错误:所在的函数内只报告一次。)
libipvs.c: In function ‘ipvs_getinfo’:
libipvs.c:56: 错误:‘sizeof’ 不能用于不完全的类型 ‘struct ip_vs_getinfo’
libipvs.c:57: 错误:‘IP_VS_SO_GET_INFO’ 未声明 (在此函数内第一次使用)
libipvs.c: In function ‘ipvs_version’:
libipvs.c:64: 错误:对未定义类型 ‘struct ip_vs_getinfo’ 的使用无效
libipvs.c: In function ‘ipvs_flush’:
libipvs.c:70: 错误:‘IP_VS_SO_SET_FLUSH’ 未声明 (在此函数内第一次使用)
libipvs.c: In function ‘ipvs_add_service’:
libipvs.c:79: 错误:‘IP_VS_SO_SET_ADD’ 未声明 (在此函数内第一次使用)
libipvs.c:79: 错误:提领指向不完全类型的指针
libipvs.c: In function ‘ipvs_update_service’:
libipvs.c:87: 错误:‘IP_VS_SO_SET_EDIT’ 未声明 (在此函数内第一次使用)
libipvs.c:87: 错误:提领指向不完全类型的指针
libipvs.c: In function ‘ipvs_del_service’:
libipvs.c:95: 错误:‘IP_VS_SO_SET_DEL’ 未声明 (在此函数内第一次使用)
libipvs.c:95: 错误:提领指向不完全类型的指针
libipvs.c: In function ‘ipvs_zero_service’:
libipvs.c:103: 错误:‘IP_VS_SO_SET_ZERO’ 未声明 (在此函数内第一次使用)
libipvs.c:103: 错误:提领指向不完全类型的指针
libipvs.c: In function ‘ipvs_add_dest’:
libipvs.c:109: 错误:提领指向不完全类型的指针
libipvs.c:109: 错误:提领指向不完全类型的指针
libipvs.c:112: 错误:‘IP_VS_SO_SET_ADDDEST’ 未声明 (在此函数内第一次使用)
libipvs.c: In function ‘ipvs_update_dest’:
libipvs.c:119: 错误:提领指向不完全类型的指针
libipvs.c:119: 错误:提领指向不完全类型的指针
libipvs.c:122: 错误:‘IP_VS_SO_SET_EDITDEST’ 未声明 (在此函数内第一次使用)
libipvs.c: In function ‘ipvs_del_dest’:
libipvs.c:129: 错误:提领指向不完全类型的指针
libipvs.c:129: 错误:提领指向不完全类型的指针
libipvs.c:132: 错误:‘IP_VS_SO_SET_DELDEST’ 未声明 (在此函数内第一次使用)
libipvs.c: In function ‘ipvs_set_timeout’:
libipvs.c:140: 错误:‘IP_VS_SO_SET_TIMEOUT’ 未声明 (在此函数内第一次使用)
libipvs.c:141: 错误:提领指向不完全类型的指针
libipvs.c: In function ‘ipvs_start_daemon’:
libipvs.c:148: 错误:‘IP_VS_SO_SET_STARTDAEMON’ 未声明 (在此函数内第一次使用)
libipvs.c:149: 错误:提领指向不完全类型的指针
libipvs.c: In function ‘ipvs_stop_daemon’:
libipvs.c:156: 错误:‘IP_VS_SO_SET_STOPDAEMON’ 未声明 (在此函数内第一次使用)
libipvs.c:157: 错误:提领指向不完全类型的指针
libipvs.c: In function ‘ipvs_get_services’:
libipvs.c:166: 错误:提领指向不完全类型的指针
libipvs.c:167: 错误:‘sizeof’ 不能用于不完全的类型 ‘ipvs_service_entry_t’
libipvs.c:167: 错误:对未定义类型 ‘struct ip_vs_getinfo’ 的使用无效
libipvs.c:172: 错误:提领指向不完全类型的指针
libipvs.c:172: 错误:对未定义类型 ‘struct ip_vs_getinfo’ 的使用无效
libipvs.c:174: 错误:‘IP_VS_SO_GET_SERVICES’ 未声明 (在此函数内第一次使用)
libipvs.c: In function ‘ipvs_cmp_services’:
libipvs.c:189: 错误:提领指向不完全类型的指针
libipvs.c:189: 错误:提领指向不完全类型的指针
libipvs.c:193: 错误:提领指向不完全类型的指针
libipvs.c:193: 错误:提领指向不完全类型的指针
libipvs.c:197: 错误:提领指向不完全类型的指针
libipvs.c:197: 错误:提领指向不完全类型的指针
libipvs.c:201: 错误:提领指向不完全类型的指针
libipvs.c:201: 错误:提领指向不完全类型的指针
libipvs.c: In function ‘ipvs_sort_services’:
libipvs.c:208: 错误:提领指向不完全类型的指针
libipvs.c:208: 错误:提领指向不完全类型的指针
libipvs.c:209: 错误:‘sizeof’ 不能用于不完全的类型 ‘ipvs_service_entry_t’
libipvs.c: In function ‘ipvs_get_dests’:
libipvs.c:218: 错误:提领指向不完全类型的指针
libipvs.c:218: 错误:‘sizeof’ 不能用于不完全的类型 ‘ipvs_dest_entry_t’
libipvs.c:218: 错误:提领指向不完全类型的指针
libipvs.c:224: 错误:提领指向不完全类型的指针
libipvs.c:224: 错误:提领指向不完全类型的指针
libipvs.c:225: 错误:提领指向不完全类型的指针
libipvs.c:225: 错误:提领指向不完全类型的指针
libipvs.c:226: 错误:提领指向不完全类型的指针
libipvs.c:226: 错误:提领指向不完全类型的指针
libipvs.c:227: 错误:提领指向不完全类型的指针
libipvs.c:227: 错误:提领指向不完全类型的指针
libipvs.c:228: 错误:提领指向不完全类型的指针
libipvs.c:228: 错误:提领指向不完全类型的指针
libipvs.c:231: 错误:‘IP_VS_SO_GET_DESTS’ 未声明 (在此函数内第一次使用)
libipvs.c: In function ‘ipvs_cmp_dests’:
libipvs.c:243: 错误:提领指向不完全类型的指针
libipvs.c:243: 错误:提领指向不完全类型的指针
libipvs.c:247: 错误:提领指向不完全类型的指针
libipvs.c:247: 错误:提领指向不完全类型的指针
libipvs.c: In function ‘ipvs_sort_dests’:
libipvs.c:253: 错误:提领指向不完全类型的指针
libipvs.c:253: 错误:提领指向不完全类型的指针
libipvs.c:254: 错误:‘sizeof’ 不能用于不完全的类型 ‘ipvs_dest_entry_t’
libipvs.c: 在顶层:
libipvs.c:259: 错误:expected ‘)’ before ‘fwmark’
libipvs.c: In function ‘ipvs_get_timeout’:
libipvs.c:288: 错误:提领指向不完全类型的指针
libipvs.c:293: 错误:‘IP_VS_SO_GET_TIMEOUT’ 未声明 (在此函数内第一次使用)
libipvs.c: In function ‘ipvs_get_daemon’:
libipvs.c:309: 错误:提领指向不完全类型的指针
libipvs.c:315: 错误:‘IP_VS_SO_GET_DAEMON’ 未声明 (在此函数内第一次使用)
libipvs.c: In function ‘ipvs_strerror’:
libipvs.c:357: 错误:‘ipvs_get_service’ 未声明 (在此函数内第一次使用)
make[1]: *** [libipvs.o] 错误 1
make[1]: Leaving directory `/usr/src/soft/lvs/ipvsadm-1.24/libipvs'
make: *** [libs] 错误 2
[root@wenlf136 ipvsadm-1.24]# yum -y install kernel-devel
[root@wenlf136 ipvsadm-1.24]# make
make -C libipvs
make[1]: Entering directory `/usr/src/soft/lvs/ipvsadm-1.24/libipvs'
gcc -Wall -Wunused -Wstrict-prototypes -g -O2 -I/usr/src/linux/include  -DHAVE_NET_IP_VS_H -c -o libipvs.o libipvs.c
ar rv libipvs.a libipvs.o
ar: creating libipvs.a
a - libipvs.o
make[1]: Leaving directory `/usr/src/soft/lvs/ipvsadm-1.24/libipvs'
gcc -Wall -Wunused -Wstrict-prototypes -g -O2 -I/usr/src/linux/include -I.. -I. -DVERSION=\"1.24\" -DSCHEDULERS=

\""rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq"\" -DHAVE_POPT -DHAVE_NET_IP_VS_H -c -o ipvsadm.o ipvsadm.c
gcc -Wall -Wunused -Wstrict-prototypes -g -O2 -I/usr/src/linux/include -I.. -I. -DVERSION=\"1.24\" -DSCHEDULERS=

\""rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq"\" -DHAVE_POPT -DHAVE_NET_IP_VS_H -c -o config_stream.o config_stream.c
gcc -Wall -Wunused -Wstrict-prototypes -g -O2 -I/usr/src/linux/include -I.. -I. -DVERSION=\"1.24\" -DSCHEDULERS=

\""rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq"\" -DHAVE_POPT -DHAVE_NET_IP_VS_H -c -o dynamic_array.o dynamic_array.c
gcc -Wall -Wunused -Wstrict-prototypes -g -O2 -o ipvsadm ipvsadm.o config_stream.o dynamic_array.o libipvs/libipvs.a

-L/usr/lib -lpopt

[root@wenlf136 ipvsadm-1.24]# make install
make -C libipvs
make[1]: Entering directory `/usr/src/soft/lvs/ipvsadm-1.24/libipvs'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/usr/src/soft/lvs/ipvsadm-1.24/libipvs'
if [ ! -d /sbin ]; then mkdir -p /sbin; fi
install -m 0755 -s ipvsadm /sbin
install -m 0755 ipvsadm-save /sbin
install -m 0755 ipvsadm-restore /sbin
[ -d /usr/man/man8 ] || mkdir -p /usr/man/man8
install -m 0644 ipvsadm.8 /usr/man/man8
install -m 0644 ipvsadm-save.8 /usr/man/man8
install -m 0644 ipvsadm-restore.8 /usr/man/man8
if [ -d /etc/rc.d/init.d ]; then \
                  install -m 0755 ipvsadm.sh /etc/rc.d/init.d/ipvsadm; \
                fi

[root@wenlf136 ~]# lsmod | grep ip_vs
[root@wenlf136 ~]# modprobe ip_vs
[root@wenlf136 ~]# lsmod | grep ip_vs
ip_vs                  78081  0
[root@wenlf136 ~]#