如果安装了更多,则强制perl使用模块版本

时间:2015-03-05 13:13:00

标签: perl cpanm

我正在安装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使用我的模块?这甚至是问题的根源吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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