bind一直在更新,使用了比较多的新架构
本文记录新版本的bind怎么安装,以及其依赖库的安装
1. 在https://www.isc.org/download/ 下载最新stable版本bind,本文以bind-9.17.9.tar.xz为例。将软件传到/root目录下。
也可以到https://ftp.isc.org/isc/bind9/ 下载更多历史版本
2. 安装基本的依赖库,像gcc、amake等
3. 需要安装libuv库,但直接用yum时可能安装不全
建议使用源码安装,需要安装新版本,旧版本,bind会出现问题
编译安装libuv
注意libuv版本,bind9.16.3的release文档中提到:
BIND crashes on startup when linked against libuv 1.36. This issue is related to recvmmsg() support in libuv which was first included in libuv 1.35. The problem was addressed in libuv 1.37, but the relevant libuv code change requires a special flag to be set during library initialization in order for recvmmsg() support to be enabled. This BIND release sets that special flag when required, so recvmmsg() support is now enabled when BIND is compiled against either libuv 1.35 or libuv >= 1.37; libuv 1.36 is still not usable with BIND. [GL #1761] [GL #1797]
从https://dist.libuv.org/dist/v1.38.0/下载当前最新的版本
使用缺省安装
autogen.sh
configure
make
make install
默认安装到/usr/local/lib目录下
4. 安装openssl库
编译安装openssl1.1.1
环境准备
yum update -y
yum group install 'Development Tools'
yum install perl-core zlib-devel -y
编译
下载openssl源码:
wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
tar zxf openssl-1.1.1d.tar.gz cd openssl-1.1.1d
./config --prefix=/usr/local/openssl-1.1.1c shared zlib
make -j4 && make install
如果想全局生效,就要增加/etc/ld.so.conf.d/中的配置项,生产环境中迭代升级可能要避免这类操作。
5. 更新环境变量
编译安装bind9
环境准备
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/openssl-1.1.1c/lib/pkgconfig/
export LIBRRARY_PATH=/usr/local/lib:/usr/local/openssl-1.1.1c/lib
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/openssl-1.1.1c/lib
以下正常编译即可,例如
./configure --prefix=/data/proc/DNS-BD/build --without-python --disable-linux-caps
make
make install