0

在我正在使用 perl 的服务器上安装了。我无法在此安装中更改任何内容,因此我安装了 cpanm 来创建我自己的 cpan 模块存储库。我在那里定义了 install-dir 并安装了模块。

问题是,有些模块已经安装在另一个版本的 server-perl 上。所以我收到以下错误消息(例如,我也为其他带有其他 pl 脚本的模块收到此消息)

Digest::MD5 object version 2.39 does not match bootstrap parameter 2.53 at /usr/lib64/perl5/DynaLoader.pm line 223.

在 /usr/lib64/perl5 中安装了 server-perl 模块。我的在另一个目录中。

如果他找到更多版本,我如何强制 perl 使用我的模块?这甚至是问题的根源吗?

谢谢!

4

2 回答 2

1

问题中路径的顺序@INC。将您的目录放在默认目录之前。您可以将环境变量设置PERL5LIB为指向您的目录以实现此目的。

于 2015-03-05T13:18:34.057 回答
0

版本只能通过执行(加载)模块来确定,所以继续寻找其他版本是有问题的。

带有二进制组件的模块安装在 arch 目录中(例如.../x86_64-linux-gnu-thread-multi/...)。INSTALL_BASE使用(由 local::lib 使用)在外部目录中安装也会创建特定于体系结构的库。你不应该让一个 Perl 安装包含另一个 Perl 版本的 arch 目录。撤消您为添加它所做的任何事情。一个不合适的PERL5LIB,也许?

于 2015-03-05T13:53:44.060 回答