2009-12-01 50 views

回答

13

我不知道贵公司的政策,但它可能会是一个更好的主意,不要乱用你的系统perl并在不同的位置安装额外的库及其先决条件(甚至专门perl),并使用lib

How do I keep my own module/library directory?perlfaq

+0

谢谢。这不是我想要的答案,但它是我需要的答案。 :) – 2009-12-01 15:14:39

+2

不是你需要的那个答案吗? :) – 2009-12-01 15:42:23

+0

非常真实,好点! – 2009-12-01 16:12:23

6

我们的系统管理员是关心确保所请求的Perl模块不会破坏系统中的其他任何东西的人。

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

如果您的系统管理员作为开发人员将此职责(即了解整个系统的影响)传递给您,那么与Sinan's suggestion配合使用并安装非标准模块需要更安全你自己的位置。不得不在同一时间成为系统管理员和开发人员,同时付钱只是一件事,这并不好玩。

+0

感谢您的补充见解。 – 2009-12-01 15:38:23

4

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

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

PS - 穆斯模块将最有可能不与其他干扰的Perl 5个模块,因为驼鹿有干净独立的命名空间。但是,它确实需要很多来自CPAN的模块,因此请提前警告您的系统管理员。 :)

另外,问你的系统管理员的Perl升级到5.10,带来很多好的新东西到Perl的核心,并允许您使用一些闪亮的新的Perl技术。

+0

谢谢。我真正希望的是服务器运行Debian Lenny,以便5.10是标准的。 我想过建议升级到5.10,但担心它可能是其他开发商产生负面影响。 – 2009-12-01 15:47:34

+0

是的,考虑到其他用户的方式,将避免问题。 :)一个人只是希望每个人都这样做。 好消息是,perl很难向后兼容,所以我不认为会有很多中断。但是,如果没有很多测试,当然很难知道。 – jeremiah 2009-12-03 12:17:13

5

诀窍是不要摆脱旧的设置,直到你知道你的新设置工作。蹭的是,CPAN工具链并不在意,并且会很乐意在新的文件上安装新的文件,而不会给你一种卸载你的破坏的方法。

如果我正在开发一个我要升级模块的大型项目,我喜欢将这些新模块放在他们自己的新目录中。我可以通过将PERL5LIB设置为新目录来测试,如果不能解决问题,我只需简单更改环境就可以回到旧版本。

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

+0

非常感谢。这对我来说非常有用。 – 2009-12-01 22:08:34

相关问题