我正在配置 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*
请帮忙
最佳答案
现在配置工作正常。我必须正确导出 Berkeley DB 的库路径:
export LD_LIBRARY_PATH="/root/db-6.0.20/build_unix/.libs"
编辑:
目录
build_unix/.libs
包含 OpenLDAP 所需的库以及伯克利安装期间生成的许多其他文件。我宁愿建议使用在安装过程中创建的目标 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
目录。关于linux - 配置 LDAP 时 Berkeley DB 不匹配错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18010989/