3

私は自分の仕事用に Perl スクリプトを書いていますが、作業用に与えられたマシンでは Perl モジュールのインストールが困難です。

  • セキュリティ上の理由からマシンにインストールできないgccため、ほとんどのモジュールで、CPAN を使用してモジュールをインストールすることはできません。
  • root アカウントにアクセスできません。

通常、モジュールをインストールしたい場合はリクエストを送信しますが、インストールされるまで 1 日か 2 日待たなければなりません。私が自分でインストールしても誰も問題にならないことはわかっているので、みんなの時間と私の正気を節約するために、自分でインストールしたいと思います。それをどうするのが最善かという問題にすぎません。私はさまざまな人と話しましたが、RPM を使用してインストールするように言われました (持っていないことを回避するためgcc)。ただし、RPM からモジュールをインストールしようとすると、依存関係が処理されないため、手動で依存関係を処理する必要があり、時間がかかることがあります。

これらの制限がある Perl モジュールを最適にインストールするにはどうすればよいですか?

4

2 に答える 2

3

同様に構築されたPerlを搭載した同様のマシンで、次を使用してモジュールをインストールします

mkdir ~/foo
cpan
o conf makepl_arg 'PREFIX=~/foo LIB=~/foo/lib/perl5'
o conf mbuildpl_arg '--prefix ~/foo --lib ~/foo/lib/perl5'
install Some::Module

しない限りo conf commit、構成の変更は一時的なものになるため、行わないでください。

コピー~/fooして、env varPERL5LIBに LIB ディレクトリが含まれるように設定します。新しいものを古いものにマージして、~/foo新しいモジュールを追加できます。

これにより、モジュールが依存する Perl 以外のライブラリはインストールされません。

于 2012-12-19T17:46:15.583 に答える
0

自分のモジュール/ライブラリディレクトリを保持するにはどうすればよいですか?も参照してください。PerlFAQのセクション8にあります。

モジュールをビルドするときは、モジュールをインストールする場所をPerlに伝えてください。

Makefile.PLベースのディストリビューションの場合、sを生成するときにオプションを使用しますINSTALL_BASEMakefile

perl Makefile.PL INSTALL_BASE=/mydir/perl

Build.PLベースのディストリビューションの場合は、次のオプションを使用します--install_base

perl Build.PL --install_base /mydir/perl

INSTALL_BASEこれらのツールにモジュールをに配置するように指示します/mydir/perl/lib/perl5実行時にインクルードパス()にディレクトリを追加するにはどうすればよいです@INCか?を参照してください。新しくインストールしたモジュールを実行する方法の詳細については。

ただし、古いバージョンで推奨されていた設定や設定とINSTALL_BASEは動作が異なるため、注意点が1つあります。同じディレクトリに複数のバージョンのPerlまたは異なるアーキテクチャのモジュールをインストールすることはサポートされていません。本当に必要かどうかを検討する必要があります。必要な場合は、古い設定を使用してください。詳細については、ExtUtils::Makemakerのドキュメントを参照してください。PREFIXLIBExtUtils::MakeMakerINSTALL_BASEPREFIXLIB

于 2012-12-19T18:33:09.073 に答える