在服务器上安装其他Perl模块时应该注意什么?

时间:2009-12-01 14:35:48

标签: perl installation module

我想请我的系统管理员安装各种Perl模块,例如MooseData::Alias。该系统是Red Hat Enterprise Linux 5,运行Perl 5.8.8。我能想到的唯一问题是一些已安装的模块可能需要升级,因此存在破坏某些东西的风险。我还应该关注什么?

4 个答案:

答案 0 :(得分:13)

我不知道贵公司的政策,但最好不要弄乱你的系统perl并安装额外的库及其先决条件(甚至是专用的perl)不同的位置并使用lib

另请参阅How do I keep my own module/library directory?中的perlfaq

答案 1 :(得分:6)

我们的系统管理员是那些关心确保所请求的Perl模块不会破坏其系统上任何其他内容的人。

所以我们问,然后他们可以说“不,那会打破 X ,请在用户空间安装它。”或者“出于兼容性原因,我们会在非标准位置安装 Y 。”在做出这个决定时,我不知道他们考虑的所有事情。我唯一应该知道的是,当安装/更新模块时,我的应用程序是否会中断。

如果您的系统管理员将此责任(即了解整个系统的影响)传达给您作为开发人员,那么与Sinan's suggestion一起安装所需的模块可能会更加安全。你自己的非标准位置。必须同时成为系统管理员和开发人员,同时只有一个人才能获得报酬并不好玩。

答案 2 :(得分:5)

诀窍是在你知道新的设置有效之前不要摆脱旧的设置。问题在于,CPAN工具链并不关心,并且很乐意在旧版文件上安装新文件,而无法让您解除损坏。

如果我正在开展一个我要升级模块的大项目,我想把新模块放在他们自己的新目录中。我可以通过将PERL5LIB设置为新目录来测试一些事情,如果它没有用完,我会通过简单的环境更改回到旧设置。

有些人使用源代码控制做类似的事情。他们将模块目录放在版本控制系统中。当他们安装新模块时,他们会检查源代码。当某些事情发生时,它们只会回滚更改。他们还可以标记版本,以便他们可以回滚到任何工作点。

答案 3 :(得分:4)

这是一个经常被问到的问题,特别是如果您使用共享主机或者有一个托管服务提供商,他们对安装perl模块持怀疑态度。

有一种修复方法可以解决混合系统模块和您自己的模块的问题,该修复程序称为local :: lib。 local::lib为您提供了一种在本地安装模块的方法,这些模块由您指定的库控制。例如,您可以使用/ home / you / perl5 /或您认为可以使用的任何路径。

PS-Moose模块很可能不会干扰其他perl 5模块,因为Moose具有干净且独立的命名空间。它确实需要CPAN提供大量模块,因此请提前警告您的系统管理员。 :)

另外,请你的系统管理员将perl升级到5.10,这会给perl的核心带来许多好的新东西,并允许你使用一些闪亮的新perl技术。