HAproxy 2.1.3源码 编译问题?
官网地址下载: https://www.haproxy.org
(百度搜出来词条打不开http://www.haproxy.org/ ,需要使用 https)
wget https://www.haproxy.org/download/2.1/src/haproxy-2.1.3.tar.gz yum install gcc gcc-c++ openssl-devel libnl3-devel pcre-devel tar -xf haproxy-2.1.3.tar.gz -C /usr/local/haproxy
在进行源码安装编译时:
官方给出参考编译:
$ make clean $ make -j $(nproc) TARGET=linux-glibc USE_OPENSSL=1 USE_ZLIB=1 USE_LUA=1 USE_PCRE=1 USE_SYSTEMD=1 $ sudo make install
报错?
...
src/namespace.o: In function `my_socketat':
/usr/local/haproxy/src/namespace.c:123: undefined reference to `setns'
/usr/local/haproxy/src/namespace.c:118: undefined reference to `setns'
collect2: ld returned 1 exit status
make: *** [haproxy] Error 1
跳过依赖重新编译:
在 haproxy 源码目录
make -j $(nproc) TARGET=linux-glibc USE_NS= # USE_NS = 确实确实跳过了依赖于此的代码 因为namespace.c中的部分不在该标志的后面。setns在内核2.6.15及更高版本中受支持,而6.6之后的CentOS / RHEL中存在2.6.32,但存在的glibc版本(2.12)不提供此功能。
跳过依赖重新编译成功,生成 haproxy 执行文件
手动创建 haproxy.cfg 配置文件;
指向配置文件启动:
启动示例:
haproxy -D -f /etc/haproxy/haproxy.cfg