php – 如何使用perl DB_File创建文件时指定BerkeleyDB的版本?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何使用perl DB_File创建文件时指定BerkeleyDB的版本?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1362字,纯文字阅读大概需要2分钟。
内容图文
![php – 如何使用perl DB_File创建文件时指定BerkeleyDB的版本?](/upload/InfoBanner/zyjiaocheng/809/79b33661e34c45d29c1d432e73d4bede.jpg)
我们似乎在我们的perl脚本和PHP脚本之间遇到了BerkeleyDB中的版本不兼容问题.我们的perl脚本生成BDB,我们的php脚本只是读取它们.
我们的perl脚本使用DB_File来创建BDB文件:
use DB_File;
$DBFILE="output.db";
tie(%db, "DB_File", $DBFILE, O_RDWR | O_CREAT, 0644)
or warning("Could not open db file '$DBFILE'");
这之前创建了一个类型的文件:
$file output.db
output.db: Berkeley DB (Hash, version 9, native byte-order)
但是,在升级sys-libs / db和DB_File之后,现在创建一个类型为的文件:
$file output.db
output.db: Berkeley DB (Hash, version 10, native byte-order)
在系统的另一个系统中,我们有一个PHP脚本.升级发生时,我们的PHP代码(基于dba_open())开始抱怨版本:
Notice: dba_open(): output.db: unsupported hash version: 10 in dbread.php on line 16
我尝试升级PHP,但似乎还没有支持版本10.
有没有办法告诉perl的DB_File在创建数据库时创建特定版本?
解决方法:
不,没有办法告诉perl的DB_File创建特定版本,AFAIK libdb本身没有该功能
如果您对libdb的4.x版本进行编译/链接,那么DB_File只能使用该版本
因此,如果您需要使用libdb-4.x的DB_File,则必须在另一个@INC目录中降级或安装另一个副本
安装时,这是您编辑的文件https://metacpan.org/source/PMQS/DB_File-1.835/config.in
只需更改DBNAME = -ldb-2.4.10即可匹配php安装使用的版本
使用https://metacpan.org/pod/ExtUtils::MakeMaker#INSTALL_BASE指定不同的安装目录,然后通过https://metacpan.org/pod/perlrun#PERL5LIB告诉perl在哪里找到它
https://metacpan.org/pod/local::lib也记录了这一点
内容总结
以上是互联网集市为您收集整理的php – 如何使用perl DB_File创建文件时指定BerkeleyDB的版本?全部内容,希望文章能够帮你解决php – 如何使用perl DB_File创建文件时指定BerkeleyDB的版本?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。