openLdap BerkleyDB编译问题

时间:2015-03-18 06:34:38

标签: linux compilation openldap

我尝试用BerkleyDB编译openLDAP,但每次都收到这条消息:

版本:

BerleyDB:db-6.1.23

openLDAP:openldap-2.4.40

1。)首先编译BerkleyDB

../ dist / configure --prefix = / products / db-6.1.23

符号链接:

BerkleyDB - > DB-6.1.23

2.)想要编译openLDAP

首先设置路径:

CPPFLAGS =" -I /产品/ BerkleyDB /包括" LDFLAGS =" -L / products / BerkleyDB / lib -L ​​/ products / BerkleyDB / lib -R / products / BerkleyDB / lib" LD_LIBRARY_PATH =" /产品/ BerkleyDB / lib中" 导出CPPFLAGS LD_LIBRARY_PATH LDFLAGS

然后:

./ configure --prefix = / products / openldap-2.4.40

..... 检查BDB / HDB后端是否支持Berkeley DB版本...没有 configure:error:BerkeleyDB版本与BDB / HDB后端不兼容

任何想法?!

3 个答案:

答案 0 :(得分:1)

Error: BerkeleyDB version incompatible with BDB/HDB backends

这意味着您需要升级Berkeley数据库,因为OpenLDAP支持数据库版本> = 4.4。

http://thompsonng.blogspot.com/2014/06/ldap-installing-openldap.html

答案 1 :(得分:1)

由于从BSD到AGPL的6.0.20许可证更改。搜索" Berkeley DB许可证更改"找到一些涵盖此内容的文章(我只能发布2个链接,下面的内容更具信息性。)

Howard Chu表示,此更改违反了Berkeley DB许可证,无需商业许可即可使用Berkeley DB 6.0或更高版本运行LDAP服务器: http://www.openldap.org/lists/openldap-technical/201309/msg00116.html

在那条消息中,霍华德指出,使用6.0或更高版本并不比使用5.3更好。

因此,OpenLDAP开发人员有意添加了对DB 6.0.20或更高版本的检查: http://www.openldap.org/its/index.cgi/Build?id=7890;selectid=7890

当然,OpenLDAP开发人员一直希望对Berkeley DB许可进行一段时间的更改,并开发自己的数据库引擎LMDB,该引擎已被许多以前使用Berkeley DB的开源项目所采用。当然,OpenLDAP有一个这个数据库引擎的后端,back_mdb。

所以:

  • 如果您有使用back_bdb或back_hdb的现有OpenLDAP数据库(两者都使用Berkeley DB作为数据库库),请使用Berkeley DB 5.3进行编译,并计划将来迁移到back_mdb

  • 如果您要在商业产品中发布OpenLDAP,并且需要Berkeley DB 6.x(back_bdb,back_hdb),请从Oracle获得商业许可或发送DB 5.3(并计划迁移)。

  • 如果您只是在寻找OpenLDAP最可靠,最高性能的本地存储后端,您应该使用back_mdb

(顺便说一下,许多Linux发行版仍然发布5.3,因许可证更改而不会发送6.x)

答案 2 :(得分:-1)

sed -i '/6.0.20/ a\\t__db_version_compat' configure