0

$HOMEWebサーバーのにいくつかのperlモジュールがインストールされています。Webサーバーはperl5.8.8を実行していたため、$HOME/perl/lib/perl5/5.8.8/...

サーバーの移行中に、Webホスティング会社がに変更さperlれまし5.10.1たが、スクリプトが失敗し始めるまで、これについては知りませんでした。5.8.8ツリーをにコピーすることで簡単なダーティフィックスを実行でき、5.10.1今は問題なく動作しているようですが、将来的にはスクリプトがこのように失敗するのを避けたいと思います。

5.8.8perlバージョンが再度アップグレードされた場合でも、スクリプトがフォルダーの下にローカルに保存されたモジュールを使用できるようにするための最良の方法は何ですか?

スクリプトに予想されるperlバージョンのチェックを追加し、変更された場合は自分自身に電子メールを送信できますが、問題を修正する前にスクリプトが数回失敗した可能性があるため、それまでには遅すぎます。理想的には、スクリプトがまったく失敗しないようにしたいです。

4

3 に答える 3

7

環境を構成するときの柔軟性に応じて、 Perlbrewを使用したい場合があります。

特定のバージョンで独立した Perl インストールを維持するため。これにより、システム全体の Perl インストールが変更されたときの厄介な驚きを回避できます。

于 2013-01-12T14:18:21.697 に答える
5

本当にすべきことは、必要なモジュールが新しいインストールにインストールされていることを確認することです。特に XS (C レベル) モジュールの場合、コアが変更されている可能性があるため、再コンパイルせずに新しいバージョンの Perl で実行できるという保証はありません。

Makefile.PLスクリプトの依存関係を宣言するorを作成する必要がBuild.PLあり、会社はサーバーの移行時にこれらのスクリプトを実行するポリシーを作成する必要があります。

最後に$^V、実行中の Perl を確認できます。ブロック内BEGINで実行すると、起動時に実行されます。実際、(純粋な perl) モジュールにローカル ディレクトリを使用し、モジュールを使用してそれらを指すことができlibます。

于 2013-01-12T14:09:40.670 に答える
2

なぜファイルを移動したのですか?代わりに PERL5LIB に追加しておいてください。

PERL5LIB=$HOME/perl/lib/perl5/5.10.1:$HOME/perl/lib/perl5/5.8.8

perlbrewホストに翻弄されるのではなく、単純に Perl のビルドをホーム ディレクトリにインストールすることを強くお勧めします。

于 2013-01-12T19:41:09.297 に答える