Peaceful mind Where there is a will, there is a way!

31May/090

freebsd下安装openldap

由于工作需要,要了解ldap方面的知识,苦于不知从何下手,管它三七二十一,先装好环境再说。而openldap号称可以和商业相媲美的开源的ldap产品。就是它了.网上在freebsd下的安装大多都是采用port安装的。由于偶自己用的freebsd没装port,那就只好手工编译,反正偶也不嫌累。。呵呵

全部安装以openldap2.3.32,Berkeyley DB4.2.52(最新已经到4.5版本了,怕不兼容,把版本稍微降了点),还有个认证的东东sasl(装了才发现不会用,白装了)

首先安装Berkeyley DB4,和一般的安装没什么区别,三部曲嘛

  tar –zxvf db-4.3.28.tar.gz
  cd db-4.3.28
  cd build_unix
  ../dist/configure
  make
  make install 

安装sasl,继续三部曲

tar xzvf cyrus-sasl-1[1].5.28.tar.gz
cd cyrus-sasl
./configure
make 
make install

最后安装openldap

tar xzvf openldap-stable-20070110.tgz
cd openldap-
2.3.32
./configure --prefix
=/usr/local/openldap

三部曲行不通了。。出现下列错误
configure: error: BDB/HDB: BerkeleyDB version incompatible
赶快网上找资料,才知道是编译选项在作怪。修改编译选项为

env CPPFLAGS="-I/usr/local/bdb/include" LDFLAGS="-L/usr/local/bdb/lib" ./configure --prefix=/usr/local/openldap --with-wrapper --enable-ldbm 

如果想知道CPPFLAGS这些的具体意思,可以用./configure --help自己查看
重新来过,没想到又出现新的错误
configure: error: Berkeley DB version mismatch
晕,刚解决完incompatible问题,又冒出个mismatch.继续找原因。最后好不容易在一外国网站找到一个解决方法,原来是环境变量惹的祸

export LD_LIBRARY_PATH="<BerkelyDB Directory path>/build_unix/.libs"  #这里的<BerkelyDB Directory path>是你解压缩安装的路径,不是你安装后的路径,别搞混了

终于编译通过了,接下来就回归正常的编译步骤了

make depend   
make
make test     #这个花的时间比较长,至少10分钟
make install

恭喜,openldap安装ok了。