0

我将一个 Perl 模块 ( DBD::Pg) 从一个系统复制到另一个系统,以便对 Mojolicious 项目进行一些快速检查。morbo在新系统上,当我在(Mojolicious 测试网络守护程序)下运行它时一切正常。但是当我尝试运行测试(通过Module::Build安装程序)时,我得到了错误:

DBD::Pg 的 Perl API 版本 v5.16.0 与 /usr/local/lib/perl/DynaLoader.pm 第 216 行的 v5.20.0 不匹配。

我研究了为什么会得到这个,并阅读了perldoc中的解释。但是由于项目在 下运行morbo,这对我来说似乎意味着在这种情况下版本不匹配可能是微不足道的。看起来 PerlXS 确实允许禁用 VERSIONCHECK,但我看不出在运行 Perl 脚本时如何应用它。

4

1 回答 1

3

您不能将非纯 Perl 模块从一个系统复制到下一个系统(或将一组 perl lib 目录复制到另一个 perl 的)。通常,这些模块中的代码是针对特定的 perl 二进制文件编译的。该二进制文件可以链接到不同的库,改变它的工作方式,使用不同的编译器,以及许多其他的东西。perl如果版本相同,它甚至可能不起作用。

相反,DBD::Pg为每个perl需要使用它的人安装。

于 2018-08-23T02:09:17.463 回答