如何在一台机器上运行多个Perl安装?

时间:2011-06-29 08:12:55

标签: perl

是否可以在一台机器上运行多个Perl安装(在“容器”中)?

原因是我有不同的基于Perl的服务器端Web应用程序,并希望独立安排更新。

例如,bugzilla升级在我看来非常具有侵略性,下载所有方式或模块更新也很冗长(从而增加了在升级时的依赖于这些模块的其他应用程序上出现不可预测行为的可能性)仍然偏袒)。

我认为应该可以在一台服务器上运行多个独立的服务器端CGI Perl应用程序,我宁愿不被告知将它们分成不同的机器 - 我认为这很浪费,而且我还没有那个资源

2 个答案:

答案 0 :(得分:9)

答案 1 :(得分:7)

安装和管理多个perls很容易。只需将它们安装在不同的地方,并使用每个perl的工具。我在The Effective Perler中讨论了这个问题。

有些人建议perlbrew没有意识到它并没有真正给你任何好处。它可以下载perl,配置和安装它,并切换符号链接,使其中一个默认。但是,它并没有做任何神奇的事情。

下载和安装不是问题。你从来没有需要root或sudo这样做,如果你这样做,你仍然需要perlbrew。您始终可以安装到您拥有权限的任何目录中。 perlbrew完全没有解决这个问题。在源目录中,您有两个简单的命令要运行:

 $./Configure -des -Dprefix=/where/you/want/to/install
 $ make install

对你来说,这可能意味着Bugzilla得到了自己的perl:

 $./Configure -des -Dprefix=/where/you/want/to/install/bugzilla-perl
 $ make install

从那里,你有一个完全独立的perl安装。当我对我使用的perl很重要时,我给程序提供了完整的路径:

 #!/where/you/want/to/install/bugzilla-perl/bin/perl

在没有perlbrew的情况下制作这些每个应用程序的安装要容易得多,它们希望尽可能多地为您完成,包括决定目录名称,它根本不是您想知道的。

perlbrew的主要优点不是编译和安装,而是switch功能,让你使一个perl成为默认值。您可能不希望使用该功能,因为您只需要使用您希望它们使用的perl的bugzilla,CGI程序等,而不是您最后指定的默认perl。

当你想要更新bugzilla-perl时,只需使用它已经调整了shebang行的工具来找到合适的perl:

 $ /where/you/want/to/install/bugzilla-perl/bin/cpan ...

我不喜欢所有这些漫长的道路,这就是我制作links to them all的原因。然后我可以用我决定的任何命名方案来调用它们,这可能是:

 $ bugzilla-cpan ...

关于我正在使用哪种工具或版本,从来没有一个问题。