3

我正在配置 OPENLDAP 2.4.35。在 Redhat Linux 上,我已经安装了 Berkley DB 4.8.30 作为先决条件。我还检查了 OPENLDAP 的 README 文件中的版本兼容性,该文件说:

    SLAPD:
    BDB and HDB backends require Oracle Berkeley DB 4.4 - 4.8,
    or 5.0 - 5.1.  It is highly recommended to apply the
    patches from Oracle for a given release.

我仍然收到此错误:

    checking db.h usability... yes
    checking db.h presence... yes
    checking for db.h... yes
    checking for Berkeley DB major version in db.h... 4
    checking for Berkeley DB minor version in db.h... 8
    checking if Berkeley DB version supported by BDB/HDB backends... yes
    checking for Berkeley DB link (-ldb-4.8)... yes
    *checking for Berkeley DB library and header version match... no
    configure: error: Berkeley DB version mismatch*

请帮助

4

1 回答 1

7

现在配置工作正常。我必须正确导出 Berkeley DB 的库路径:

export LD_LIBRARY_PATH="/root/db-6.0.20/build_unix/.libs"

编辑 :

该目录build_unix/.libs包含 OpenLDAP 所需的库,还包含在 Berkeley 安装期间生成的许多其他文件。我宁愿建议使用在安装过程中创建的目标 Berkeley lib 目录(它应该等于 PREFIX/lib),因为您有一天会删除/更新您的 Berkeley 源目录,从而破坏 OpenLDAP 运行时(请参阅我编辑的结尾)

您可以导出 LD_LIBRARY_PATH 变量,或者仅在 OpenLDAP 的配置时设置它,这样:

LD_LIBRARY_PATH="/root/db-6.0.20.installed/lib" ./configure

通常会有其他配置选项,我在这里省略它们。

正确安装后,OpenLDAP 仍可能无法启动,并在日志中显示以下错误消息:

5d34473d bdb_back_initialize: BDB library version mismatch: expected Berkeley DB 5.3.28: (September  9, 2013), got Berkeley DB 5.3.21: (May 11, 2012)

为了解决这个问题,解决方案是再次强制 LD_LIBRARY_PATH 变量,这次是在启动脚本中(无论你在哪里,例如 /etc/init.d/openldap)。当我们谈论运行时,重要的是要注意我们不应该调用build_unix/.libs被认为是临时的目录,而是创建的/lib目录。

于 2013-08-02T10:07:06.927 回答