在ubuntu 14.04 上,安装 openldap,如果你搜索下,你会发现到处都在说 "configure: error: BDB/HDB: BerkeleyDB not available" 的错误。而且,每篇文章都会说是“BerkeleyDB和openldap不兼容,从而导致的各种问题”。
今天安装了下,都特么累出屎了,好在翻到这篇文章 http://blog.sina.com.cn/s/blog_56d8ea900100q5jr.html
看到这篇文章的作者可以用各种参数来解决问题,我觉得,最新版本应该也可以成功安装的,果然,BerkeleyDB和openldap都用最新版本,安装成功(编译openldap时,会有很多warning。链接中的文章,也会报同样的warning。作为一个 low逼 java程序员,就不追究这个了)
本机环境是:32bit 的 Ubuntu 14.04 LTS
BerkeleyDB和openldap都用最新版本(我安装时的日期:2014年07月20日 )
db-6.1.19.zip
http://download.oracle.com/otn/berkeley-db/db-6.1.19.zip
openldap-2.4.39.tgz
ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.39.tgz
unzip db-6.1.19.zip
cd db-6.1.19/build_unix/
../dist/configure
sudo make
sudo make install
BerkeleyDB.6.1安装到:/usr/local/BerkeleyDB.6.1/lib
下面这步非常重要(如果没有这步,最后运行 slapd 时,会报 "error while loading shared libraries: libdb-6.1.so: cannot open shared object file: No such file or directory
" 的错误)
--然后在最后面,加上一行:/usr/local/BerkeleyDB.6.1/lib
sudo vim /etc/ld.so.conf
sudo ldconfig -v
OK,BerkeleyDB.6.1 安装完毕,安装到:/usr/local/BerkeleyDB.6.1/lib
tar xvf openldap-2.4.39.tgz
cd openldap-2.4.39/
sudo ./configure CPPFLAGS="-I/usr/local/BerkeleyDB.6.1/include -D_GNU_SOURCE" LDFLAGS="-L/usr/local/BerkeleyDB.6.1/lib"
sudo make depend
sudo make
sudo make install
sudo make时,会有好多warning,直接不管(我们是程序员嘛,只关心 Error 的)
OK,openldap-2.4.39 安装完毕,安装到:/usr/local/etc/openldap
--把 suffix和rootdn改成下面这种(后面插入时,我们就用这个example)
sudo vim /usr/local/etc/openldap/slapd.conf
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
su root -c /usr/local/libexec/slapd
--下面这句,应该可以运行成功
ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: Example Company
dc: example
dn: cn=Manager,dc=example,dc=com
objectclass: organizationalRole
cn: Manager
如果需要密码,密码是secret(默认密码,位于/usr/local/etc/openldap/slapd.conf, 我们没改过)
ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f example.ldif
ldapsearch -x -b 'dc=example,dc=com' '(objectclass=*)'
最后 ldapsearch 运行完成,你将看到这样的结果