2012-08-30 6 views
6

システムのperl v5.10を使用しているWebサーバーでCatalystアプリケーションを実行したいとします。私はアプリのために少なくともv5.12を使いたいと思っています。私はシステムのperlに干渉したくありません。Webアプリケーションに非システムPerlを使用するための推奨される方法は何ですか?

私たちのシステム管理者は、このアプリを主張しています。

私はperlbrewを使って開発用に非システムperlを使うことができると知っていますが、実際のバージョンを実行するにはどのような方法が良いか分かりません。です。どのように人々はこの状況を扱うことをアドバイスしていますか?

答えて

4

nobody(つまり、誰でも)は、perl実行可能ファイルとすべてのライブラリ(@INCディレクトリのすべてのもの)に対する読み取りと実行権限を与えます。

すべてのアプリケーションスクリプト(少なくとも./scriptsディレクトリのすべてを含む)のシバンラインを、使用するperlのインスタンスに変更します。または、柔軟にしたい場合は、希望するperl実行可能ファイルを指し示すシンボリックリンクにシバン線を向けます。このリンクはnobodyにもアクセス可能であることを確認してください。

シンボリックリンクが別のバージョンのPerlを指しているときはいつでも、アプリケーションを再起動してください。

6

あなたはPerlbrewをよく知っているので、それを使ってPerlをインストールすることもできます。

perlbrew install 5.16.1 --as=5.16.1t -Dusethreads 

適切なアクセス許可を与えてください。スクリプトで次のシェバング行を使用すると

chmod a+x /home/djh/ 
chmod a+x /home/djh/perl5/ 
chmod a+x /home/djh/perl5/perlbrew/ 
chmod a+x /home/djh/perl5/perlbrew/perls/ 
chmod -R a+rX /home/djh/perl5/perlbrew/perls/5.16.1t/ # Capital "X"!!! 

:あなたの$PERLBREW_ROOT/home/djh/perl5/perlbrew(デフォルト)であると言う

#!/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を削除します。)

+0

@djh、追加されました私の答えに。 – ikegami

関連する問題