如何在没有安装权限的情况下使用新的Perl模块?

时间:2008-10-30 20:46:30

标签: perl permissions installation module cpan

以下是我的情况:我对Perl几乎一无所知,但它是移植机上唯一可用的语言。我只有权在我的本地工作区写入,而不是Perl安装位置。我需要使用CPAN中的Parallel::ForkManager Perl模块

如何在不进行集中安装的情况下使用此Parallel :: ForkManager?是否有可以设置的环境变量,因此它位于?

由于

JD

11 个答案:

答案 0 :(得分:35)

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

构建模块时,请告诉Perl在哪里安装模块。

对于基于C的发行版,请使用INSTALL_BASE选项 生成Makefile时:

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. 安装了moudles。

但是,INSTALL_BASE有一个警告,因为它起作用 不同于早期版本的PREFIX和LIB设置 ExtUtils :: MakeMaker主张。 INSTALL_BASE不支持 为多个版本的Perl或不同版本安装模块 同一目录下的架构。你应该考虑一下 真的很想要,如果你这样做,请使用旧的PREFIX和LIB 设置。有关更多详细信息,请参阅ExtUtils :: Makemaker文档。

答案 1 :(得分:6)

查看Mark Dominus的this post

摘录:

  
      
  • 构建Makefile时设置PREFIX = X
  •   
  • 在构建Makefile时设置INSTALLDIRS = vendor和VENDORPREFIX = X.      
        
    • 或者可能代替VENDORPREFIX,你需要设置INSTALLVENDORLIB或其他东西
    •   
    • 或者可能不是在构建Makefile时设置它们,而是需要在运行make install target时设置它们
    •   
  •   
  • 构建Makefile时设置LIB = X / lib
  •   
  • 使用PAR
  •   
  • 使用local :: lib
  •   

Mark还在他的博客中提供了另一个解决方案,它需要更多的空间来进行desribe,但归结为运行make和make test但不是make install然后使用blib中的东西/。

答案 2 :(得分:5)

将包裹表格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;

- 应该这样做。

答案 3 :(得分:4)

在使用模块时,命令行上有PERL5LIB环境变量和-I。告诉CPAN和CPANPLUS有一些机制。

CPAN手册的问题5中有信息(perldoc CPAN,或查看CPAN本身)。

答案 4 :(得分:3)

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

答案 5 :(得分:2)

您可以使用-I(大写i)命令行开关,然后使用放置模块的目录;或者尝试“use lib”指令,后跟目录。

答案 6 :(得分:2)

答案 7 :(得分:2)

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

答案 8 :(得分:2)

使用cpanm -l $DIR_NAME选项。

答案 9 :(得分:0)

考虑使用cpanminus,this other thread

上的建议

答案 10 :(得分:0)

perlbrew可让您使用本地perl并将其程序包安装到本地目录。

\curl -L https://install.perlbrew.pl | bash

perlbrew init  # put this in .bash_profile etc

perlbrew install 5.27.11

perlbrew switch 5.27.11

另请参阅https://opensource.com/article/18/7/perlbrew