How can I use a new Perl module without install pe

2019-01-01 11:16发布

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

10条回答
几人难应
2楼-- · 2019-01-01 11:40

use cpanm -l $DIR_NAME option.

查看更多
其实,你不懂
3楼-- · 2019-01-01 11:44

There's the PERL5LIB environment variable, and -I on the command line when it comes to using the module. There are mechanisms for telling CPAN and CPANPLUS.

There is information in question 5 of the CPAN manual (perldoc CPAN, or look at CPAN itself).

查看更多
十年一品温如言
4楼-- · 2019-01-01 11:44

Consider using cpanminus, a suggested on this other thread

查看更多
美炸的是我
5楼-- · 2019-01-01 11:45

From perlfaq8: How do I keep my own module/library directory?:

When you build modules, tell Perl where to install the modules.

For C-based distributions, use the INSTALL_BASE option when generating Makefiles:

perl Makefile.PL INSTALL_BASE=/mydir/perl

You can set this in your CPAN.pm configuration so modules automatically install in your private library directory when you use the CPAN.pm shell:

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

For C-based distributions, use the --install_base option:

perl Build.PL --install_base /mydir/perl

You can configure CPAN.pm to automatically use this option too:

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

INSTALL_BASE tells these tools to put your modules into F. See L for details on how to run your newly installed moudles.

There is one caveat with INSTALL_BASE, though, since it acts differently than the PREFIX and LIB settings that older versions of ExtUtils::MakeMaker advocated. INSTALL_BASE does not support installing modules for multiple versions of Perl or different architectures under the same directory. You should consider if you really want that , and if you do, use the older PREFIX and LIB settings. See the ExtUtils::Makemaker documentation for more details.

查看更多
低头抚发
6楼-- · 2019-01-01 11:48
use lib 'directory';
use Parallel::ForkManager;
查看更多
心情的温度
7楼-- · 2019-01-01 11:52

Download package form CPAN to a folder:

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

before this create a folder in home to store your local modules, now go into downloaded folder and run follwing cmmands:

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

get the path to ForkManager from the installed folder,/home/username/myModules and locate Parallel folder and get the full path to this.

Now in your perl file put these at the beggining

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

--That should do it.

查看更多
登录 后发表回答