我发现自己在没有root访问权限的CentOS上,以及一个甚至没有ExtUtils :: MakeMaker的非常蹩脚的Perl。
是否存在可以产生模块依赖关系存档的东西,以便我打开一个可以放入@INC的目录?
答案 0 :(得分:2)
cd ~/bin
curl -LO http://xrl.us/cpanm
chmod +x cpanm
export ROOT=/some/directory
export PERL5LIB=${ROOT}/lib/perl5
然后,安装ExtUtils::MakeMaker
和Module::CoreList
。您无法进行简单安装,因为这些模块由cpanm
使用,并且它不会在解压缩的源目录中查找它们。因此,请cpanm
下载它们,然后进行半手动安装。它实际上安装了三个发行版(上面两个和ExtUtils::Install
),这就是为什么你要三次调用构建咒语的原因:
PERL_MM_OPT=INSTALLBASE=$ROOT ./cpanm -L $ROOT --look ExtUtils::MakeMaker Module::CoreList
perl Makefile.PL
make && make install
exit
perl Makefile.PL
make && make install
exit
perl Makefile.PL
make && make install
exit
将包和cd
依次解压缩到每个发行版的目录中。至少这是在CentOS 6安装上发生的事情,我碰巧在四处闲逛。
之后,您应该能够通过
安装模块及其依赖项./cpanm -L $ROOT <module name, or url, or tarball goes here>
查看cpanm
文档以获取更多信息。
答案 1 :(得分:0)
您可以使用perlbrew安装具有用户访问权限的全新Perl。
#install perlbrew
wget -O - http://install.perlbrew.pl | bash
# install new perl for youurself
perlbrew install perl-5.16.0
# set aliases
perlbrew switch perl-5.16.0
#reinstall all moodules for new perl http://perlbrew.pl/Reinstall-All-Modules-On-New-Perl.html
perlbrew list-modules | perlbrew exec --with perl-5.16.0 cpanm
#how to install/recompile third party modules
https://github.com/lecstor/DevNotes/wiki/Image-Magick-with-Perlbrew
此致
答案 2 :(得分:0)
下载并解压ExtUtils::MakeMaker,在您的主目录下创建一个目录lib
,通过以下方式安装:
perl Makefile.PL PREFIX=~/lib LIB=~/lib
现在已安装该模块我建议您使用local::lib(通过文档中的bootstrap
方法轻松安装)来安装模块:
perl -MCPAN -Mlocal::lib -e 'CPAN::install(MIME::Lite)' # Replace MIME::Lite with what you want to install.
此处MIME::Lite通过cpan安装到您的本地lib
目录。
Prelbrew不会花很长时间设置,从长远来看,你可能会有更轻松的时间。
编辑,评论太久了。
@LeeGee也许我不够具体。
所描述的方法将允许您绕过您有权访问的受限制的perl版本,并允许将模块安装到另一个位置。
如果您想在其他计算机上打包您的应用,可以使用PAR或pp创建一个独立的代码包&amp;模块,或独立的可执行文件。
失败Module::ScanDeps将找到脚本依赖