这是我的情况:我对Perl几乎一无所知,但它是移植机器上唯一可用的语言.我只有权在我的本地工作区写入,而不是Perl安装位置.我需要使用CPAN 的Parallel :: ForkManager Perl模块
如何在不进行集中安装的情况下使用此Parallel :: ForkManager?是否有我可以设置的环境变量,因此它位于?
谢谢
JD
从perlfaq8:我如何保留自己的模块/库目录?:
构建模块时,请告诉Perl在哪里安装模块.
对于基于C的分发,在生成Makefile时使用INSTALL_BASE选项:
perl Makefile.PL INSTALL_BASE=/mydir/perl
您可以在CPAN.pm配置中进行设置,以便在使用CPAN.pm shell时模块自动安装在您的私有库目录中:
% 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有一个警告,因为它的行为与旧版ExtUtils :: MakeMaker所倡导的PREFIX和LIB设置不同.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和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;
- 应该这样做.