在CentOS 6.8下编译安装BerkeleyDB和OpenLDAP

    当前使用的操作系统是 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 的编译和安装。




你可能感兴趣的:(linux,GCC)