28

Here is my situation: I know almost nothing about Perl but it is the only language available on a porting machine. I only have permissions to write in my local work area and not the Perl install location. I need to use the Parallel::ForkManager Perl module from CPAN

How do I use this Parallel::ForkManager without doing a central install? Is there an environment variable that I can set so it is located?

Thanks

JD

4

11 に答える 11

36

perlfaq8より: 自分のモジュール/ライブラリ ディレクトリを保持するにはどうすればよいですか? :

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

C ベースのディストリビューションでは、Makefile を生成するときに INSTALL_BASE オプションを使用します。

perl Makefile.PL INSTALL_BASE=/mydir/perl

これを CPAN.pm 構成で設定すると、CPAN.pm シェルを使用するときにモジュールがプライベート ライブラリ ディレクトリに自動的にインストールされます。

% cpan
cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl
cpan> o conf commit

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

perl Build.PL --install_base /mydir/perl

このオプションを自動的に使用するように CPAN.pm を設定することもできます:

% cpan
cpan> o conf mbuild_arg --install_base /mydir/perl
cpan> o conf commit

INSTALL_BASE は、これらのツールにモジュールを F に配置するように指示します。新しくインストールしたモジュールを実行する方法の詳細については、L を参照してください。

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

于 2008-10-30T21:01:37.467 に答える
7

パッケージ フォーム CPAN をフォルダーにダウンロードします。

wget http://search.cpan.org/CPAN/authors/id/S/SZ/SZABGAB/Parallel-ForkManager-1.06.tar.gz
gunzip Parallel-ForkManager-1.06.tar.gz
tar -xvf Parallel-ForkManager-1.06.tar

これを行う前に、ホームにフォルダーを作成してローカル モジュールを保存し、ダウンロードしたフォルダーに移動して、次のコマンドを実行します。

perl Makefile.PL PREFIX=/home/username/myModules
make
make test
make install

インストールされたフォルダー /home/username/myModules から ForkManager へのパスを取得し、Parallel フォルダーを見つけて、これへのフル パスを取得します。

今あなたのperlファイルにこれらを最初に置いてください

use lib '/home/username/myModules/bin.../Parallel';
use parallel::ForkManager;

――それでいいんです。

于 2014-02-20T14:59:12.273 に答える
6

Mark Dominus のこの投稿をチェックしてください。

抜粋:

  • Makefile のビルド時に PREFIX=X を設定する
  • Makefile のビルド時に INSTALLDIRS=vendor および VENDORPREFIX=X を設定します。
    • または、 VENDORPREFIX の代わりに INSTALLVENDORLIB などを設定する必要があるかもしれません
    • または、Makefile のビルド中に設定する代わりに、make install ターゲットの実行中に設定する必要があるかもしれません。
  • Makefile のビルド時に LIB=X/lib を設定します。
  • パーを使用
  • local::lib を使用する

Mark はまた、彼のブログで別の解決策を提供しています。これは、説明するのにもう少しスペースが必要ですが、make と make test を実行し、make install を実行せず、blib/ にあるものを使用することに要約されます。

于 2008-10-30T21:01:44.363 に答える
4

PERL5LIB環境変数があり-I、モジュールの使用に関してはコマンドラインにあります。CPANとCPANPLUSに伝えるメカニズムがあります。

CPANマニュアルの質問5に情報があります(perldoc CPAN、またはCPAN自体を見てください)。

于 2008-10-30T21:19:30.130 に答える
3
use lib 'directory';
use Parallel::ForkManager;
于 2008-10-30T21:15:29.547 に答える
2

はい、CPAN を使用することもできます

于 2008-11-02T09:12:04.383 に答える
2
perl Makefile.PL LIB=/my/perl_modules/lib/
make
make install
PERL5LIB=$PERL5LIB:/my/perl_modules/lib/
perl myperlcode.pl
于 2012-08-27T14:52:41.737 に答える
2

-I(大文字の i) コマンド ライン スイッチの後に、モジュールを配置するディレクトリを指定できます。または、「use lib」ディレクティブの後にディレクトリを指定してみてください。

于 2008-10-30T21:04:16.013 に答える
0

この他のスレッドで提案されているcpanminusの使用を検討してください

于 2010-06-13T12:03:23.117 に答える