当前使用的操作系统是 64 位的 CentOS 6.8,已安装了4.4.7 版本的 GCC。
如果不想自己编译 OpenLDAP,可以使用命令 yum install openldap.X86_64 安装。如果需要安装 OpenLDAP相关的开发工具,可以使用命令:yum install openldap-devel.X86_64
OpenLDAP 的官网是 https://www.openldap.org/ ,当前官网上提供下载的最新版本是 2.4.45,下载文件 openldap-2.4.45.tgz 后,解压缩,执行 ./configure 命令,会报告检测到当前计算机上未安装 Berkeley DB 的错误,所以要先安装 BerkeleyDB,再安装 OpenLDAP。
在 Oracle 网站上可以找到 Berkeley DB 的下载网址:http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
当前最新的版本是 6.2.32,由于体积有点大(48MB左右),所以下载了体积较小(13MB左右)的 4.7.25 版文件 db-4.7.25.tar.gz,解压缩以后,进入 build_unix 目录以后没有找到 configure 文件,在 dist 目录下找到了该文件,执行后出现以下错误提示:
Berkeley DB should not be built in the top-level or "dist" directory. Change directory to the build_unix directory and run ../dist/configure from there.
于是切换到 build_unix 目录下,依次执行以下命令:
../dist/configure
make
make install
安装完成之后,发现在 /usr/local 下面已经创建了一个名为 BerkeleyDB.4.7 的目录,该目录结构示意图如下:
/usr/local/BerkeleyDB.4.7/ ---- bin (目录)
|
|-- docs (目录)
|
|-- include (目录)(在该目录下包含 db.h 和 db_cxx.h 两个头文件)
|
|-- lib (目录)
在其中 lib 目录下包含 6 个库文件:libdb-4.7.a,libdb-4.7.la,libdb-4.7.so,libdb-4.so,libdb.a,libdb.so。在安装过程中会把这 6 个库文件拷贝到 /usr/lib64 目录下。
为了试验一下 Berkeley DB 是否安装成功,采用了以下方法:进入当初解压 db-4.7.25.tar.gz 文件时得到的目录 db-4.7.25,再进入下级子目录 examples_c/getting_started ,在其中包含以下文件:
example_database_load.c
example_database_read.c
gettingstarted_common.c
gettingstarted_common.h
inventory.txt
vendors.txt
使用以下命令编译一个测试加载数据库的示例程序:
gcc -o db_load_test -I /usr/local/BerkeleyDB.4.7/include -ldb example_database_load.c gettingstarted_common.c
然后执行命令 ./db_load_test ,显示输出如下:
databases opened successfully
databases closed.
Done loading databases.
接下来使用以下命令再编译一个测试读取数据库的示例程序:
gcc -o db_read_test -I /usr/local/BerkeleyDB.4.7/include/ -ldb example_database_read.c gettingstarted_common.c
然后执行命令 ./db_read_test ,将会显示输出从数据库中读到的大量信息,其中一条内容如下:
name: Zulu Nut
SKU: ZulufruiWbz6vU
Category: fruits
Price: 0.71
Quantity: 653
Vendor:
Simply Fresh
15612 Bogart Lane
Harrian,WI
53704
420 333 3912
Contact: Cheryl Swedberg
420 333 3952
至此可认为 Berkeley DB 安装成功。
——————————————————————————————————
接下来安装 OpenLDAP,在当前计算机上,openldap-2.4.45.tgz 被解压到 /myfiles/ldap/openldap-2.4.45 目录下。进入该目录,执行 ./configure 命令,依然报告没有检测到 Berkeley DB。看来尽管 Berkeley DB 在安装过程中将库文件拷贝到 /usr/lib64 目录下,还不足以让 openldap 检测到 Berkeley DB已被安装,解决办法是将 Berkeley DB 的头文件使用以下命令拷贝到系统的 include 目录下:
cp /usr/local/BerkeleyDB.4.7/include/*.* /usr/include
再次执行 ./configure 命令,就不再出现报错提示了。执行完成后出现以下提示:
Please run "make depend" to build dependencies
于是依次执行以下命令:
make depend
make
make install
这样就完成了 OpenLDAP 的编译和安装。