我尝试用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后端不兼容
任何想法?!
答案 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