OpenLDAP安装及BerkeleyDB错误之解决

在VM虚拟机上安装,系统使debain  2.6.18-5-686。

这里是官方的文档:
OpenLDAP Quick-Start Guide http://www.openldap.org/doc/admin24/quickstart.html

Linux下面安装软件很头疼的是软件之间的依赖性,不像windows所有的基本功能都是mircosoft自己开发的,而linux除了内核之外,一切都可以替换,尤其是涉及图形显示。

Prerequisite software:http://www.openldap.org/doc/admin24/install.html#Prerequisite%20software

注意:确保先安装了gcc和g++,否则无法编译。
如何安装: apt-get install gcc g++

Berkeley的安装的相对简单,基本上不会有问题。下面是涉及的命令:
tar -xzf db-4.6.21.NC.tar
cd db-4.6.21/build_unix
../dist/configure
make
make install

安装OpenLDAP,提示错误:BerkeleyDB not available

网上的解决办法多是设置编译参数:
env CPPFLAGS="-I/usr/local/BerkeleyDB.4.1/include" LDFLAGS="-L/usr/local/BerkeleyDB.4.1/lib" ./configure

我在至少4个系统上测试过了,这个是不行的。

还有一个方法,就是把所需要的文件直接复制到系统文件夹下面:

$su root
#cp /usr/local/BerkeleyDB.4.2/include/* /usr/include/
#cp /usr/ local/BerkeleyDB.4.2/lib/* /usr/lib

这样做,会导致以后安装某些文件出错,至少我碰到了。

终于找到一个我认为最正确的方法:

CPPFLAGS="-I/usr/local/BerkeleyDB.4.6/include"
export CPPFLAGS
LDFLAGS="-L/usr/local/lib -L/usr/local/BerkeleyDB.4.6/lib -R/usr/local/BerkeleyDB.4.6/lib"
export LDFLAGS
LD_LIBRARY_PATH="/usr/local/BerkeleyDB.4.6/lib"
export LD_LIBRARY_PATH

./configure

这样设置的环境变量不会在不同的shell间共享,所以不要再一个shell设置变量,到另一个shell去编译!

原文地址:https://www.cnblogs.com/ainima/p/6331440.html