我一直在为我的工作编写Perl脚本,而且我给予工作的机器使安装Perl模块变得困难:
gcc
,因此对于大多数模块,我无法使用CPAN安装模块。通常,当我想安装模块时,我提出了一个请求,我必须等待一两天才能安装。我知道没有人会因为我自己安装它们而遇到问题,所以为了节省每个人的时间和理智,我想自己安装它们。这只是如何做到这一点的问题。我和各种各样的人谈过,他们说使用RPM来安装它们(为了避免使用gcc
)。但是,当尝试从RPM安装模块时,它不处理依赖项,因此我手动需要处理依赖项,这可能需要一段时间。
如何才能最好地安装具有这些限制的Perl模块?
答案 0 :(得分:3)
在具有类似内置Perl的类似计算机上,使用
安装模块mkdir ~/foo
cpan
o conf makepl_arg 'PREFIX=~/foo LIB=~/foo/lib/perl5'
o conf mbuildpl_arg '--prefix ~/foo --lib ~/foo/lib/perl5'
install Some::Module
只要你没有o conf commit
,配置更改将是暂时的,所以不要这样做。
复制~/foo
,并设置env var PERL5LIB
以包含LIB目录。您可以将较新的~/foo
合并到较旧的{{1}}中以添加新模块。
这不会安装模块所依赖的任何非Perl库。
答案 1 :(得分:0)
另请参阅Perl常见问题解答第8节中的How do I keep my own module/library directory?。
构建模块时,请告诉Perl在哪里安装模块。
对于基于
Makefile.PL
的发布,在生成INSTALL_BASE
s时使用Makefile
选项:perl Makefile.PL INSTALL_BASE=/mydir/perl
对于基于
Build.PL
的分发,请使用--install_base
选项:perl Build.PL --install_base /mydir/perl
INSTALL_BASE
告诉这些工具将您的模块放入/mydir/perl/lib/perl5
。有关如何运行新安装的模块的详细信息,请参阅How do I add a directory to my include path (@INC
) at runtime?。但
INSTALL_BASE
有一点需要注意,因为它的行为与旧版PREFIX
提倡的LIB
和ExtUtils::MakeMaker
设置不同。INSTALL_BASE
不支持在同一目录下为多个Perl版本或不同体系结构安装模块。您应该考虑是否真的需要它,如果使用,请使用较旧的PREFIX
和LIB
设置。有关更多详细信息,请参阅ExtUtils :: Makemaker文档。