インストール許可なしで新しいPerlモジュールを使用するにはどうすればよいですか?
-
05-07-2019 - |
質問
ここに私の状況があります。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
オプションを使用します。