什么';web应用程序使用非系统perl的推荐方法是什么?

什么';web应用程序使用非系统perl的推荐方法是什么?,perl,web-applications,perlbrew,Perl,Web Applications,Perlbrew,我想在我的web服务器上运行一个Catalyst应用程序,该服务器具有系统PerlV5.10。我想在应用程序中至少使用v5.12,我不想干预perl系统 我们的系统管理员坚持应用程序。由非shell用户(例如“nobody”)运行 我知道我可以使用perlbrew来使用非系统perl进行开发,但我不确定运行实时版本的最佳方式是什么。人们建议如何处理这种情况?对perl可执行文件和所有库(在@INC目录下的所有内容)给予任何人(即所有人)读取和执行权限 将所有应用程序脚本(至少包括/scripts

我想在我的web服务器上运行一个Catalyst应用程序,该服务器具有系统PerlV5.10。我想在应用程序中至少使用v5.12,我不想干预perl系统

我们的系统管理员坚持应用程序。由非shell用户(例如“nobody”)运行

我知道我可以使用perlbrew来使用非系统perl进行开发,但我不确定运行实时版本的最佳方式是什么。人们建议如何处理这种情况?

对perl可执行文件和所有库(在
@INC
目录下的所有内容)给予
任何人(即所有人)读取和执行权限

将所有应用程序脚本(至少包括
/scripts
目录下的所有内容)中的shebang行更改为要使用的
perl
实例。或者,如果您想灵活处理out,请将shebang行指向指向所需的
perl
可执行文件的符号链接。确保
任何人都可以访问此链接


每当您将符号链接指向不同版本的Perl时,请重新启动应用程序。

因为您熟悉perlbrew,所以仍然可以使用它来安装Perl

perlbrew install 5.16.1 --as=5.16.1t -Dusethreads
您只需确保您给予了适当的权限。假设您的
$PERLBREW\u ROOT
/home/djh/perl5/PERLBREW
(默认值):

然后在脚本中使用以下shebang行:

#!/home/djh/perl5/perlbrew/perls/5.16.1t/bin/perl

但也许你不想把它放在家里。如果是这样,您可以这样做:

cd /tmp
wget http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/perl-5.16.1.tar.bz2
tar xvjf perl-5.16.1.tar.bz2
cd perl-5.16.1
sh Configure -des -Dprefix=/opt/perls/5.16.1t -Dusethreads
make test

sudo mkdir /opt/perls/5.16.1t
sudo chown djh:djh /opt/perls/5.16.1t
make install
安装程序将正确设置权限。你所要做的就是把车开到

#!/opt/perls/5.16.1t/bin/perl

(“t”是我对线程构建的约定。如果不需要线程支持,请删除
-Dusethreads
。)

#!/opt/perls/5.16.1t/bin/perl