インストール許可なしで新しいPerlモジュールを使用するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/251705

質問

ここに私の状況があります。Perlについてはほとんど何も知りませんが、それは移植マシンで利用できる唯一の言語です。ローカルの作業領域に書き込む権限のみがあり、Perlのインストール場所にはアクセスできません。 Parallel :: ForkManager CPANのPerlモジュール

を使用する必要があります

中央インストールを行わずにこのParallel :: ForkManagerを使用するにはどうすればよいですか?配置できるように設定できる環境変数はありますか?

ありがとう

JD

役に立ちましたか?

解決

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

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

Cベースのディストリビューションの場合、INSTALL_BASEオプションを使用します Makefileを生成する場合:

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を参照してください インストールされたモジュール。

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

他のヒント

Mark Dominusのこの投稿をご覧ください

抜粋:

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

Markは、ブログで別の解決策も提供しています。これは、desribeにもう少しスペースを取りますが、最終的にはmake and make testを実行しますが、make installではなくblib /にあるものを使用します。

パッケージフォーム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

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

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;

-そうする必要があります。

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

CPANマニュアルの質問5に情報があります(perldoc CPAN、または CPAN 自体を参照) 。

use lib 'directory';
use Parallel::ForkManager;

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

perl Makefile.PL LIB=/my/perl_modules/lib/
make
make install
PERL5LIB=$PERL5LIB:/my/perl_modules/lib/
perl myperlcode.pl

cpanm -l $ DIR_NAME オプションを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top