准备阶段
参考文章:https://www.cnblogs.com/netonline/p/7486832.html
操作系统:CentOS 7.5
下载BDB数据库
berkeley-db-5.3.21
http://download.oracle.com/berkeley-db/db-5.3.21.tar.gz
openldap的数据存储依赖于berkeley-db,所以需要安装berkeley-db。
下载openldap
openldap-2.4.46
https://www.openldap.org/software/download/OpenLDAP/openldap-release/
编译安装阶段
先编译berkeley-db
1、解压db-5.3.21.tar.gz
tar zxvf db-5.3.21.tar.gz
2、进入db-5.3.21/build_unix
3、../dist/configure --prefix=/opt/bdb
--prefix指定安装路径
4、编译
make
5、安装
make install
一路非常顺利。
再编译openldap
1、解压openldap-2.4.46.tgz
tar zxvf openldap-2.4.46.tgz
2、进入openldap-2.4.46/
3、./configure --prefix=/opt/openldap --enable-syslog --enable-modules --enable-overlays CPPFLAGS=-I/opt/bdb/include/ LDFLAGS=-L/opt/bdb/lib/ --libdir=/opt/bdb/lib/ --includedir=/opt/bdb/include/
--prefix指定安装路径
4、make depend
5、make
6、make test
7、make install
如果编译过程报错:
1、configure: error: could not locate libtool ltdl.h
那说明是缺少libtool-ltdl、libtool-ltdl-devel包了,可以通过rpm -qa | grep libtool-ltdl查询这些包有没有安装;
如果没有安装,可以通过yum来安装
yum install -y libtool-ltdl libtool-ltdl-devel
然后再重新编译。
2、错误详情:
checking for Berkeley DB library and header version match... Berkeley DB version mismatch
header: Berkeley DB 5.3.21: (May 11, 2012)
library: Berkeley DB 5.3.28: (September 9, 2013)
no
configure: error: Berkeley DB version mismatch
解决办法:
export LD_LIBRARY_PATH="/opt/bdb/lib"
由于通过--prefix参数指定了安装路径为/opt/openldap,所以这个就不像yum安装一样部署到系统目录下。
但是配置的流程还是跟yum安装的配置流程一样,可参考:https://www.jianshu.com/p/b41839ed3327
安装配置过程也不复杂。
如果想编译源码后不直接安装,而是打成rpm包,然后通过rpm安装。
如何通过源码打一个rpm包呢
工具安装
编写spec模板
执行打包命令