2016-12-16 122 views
0

我尝试了一些Template模块的一些自定义修改。我下载使用:INSTALL_BASE似乎被忽略Makefile.PL

$ cpan -g Template 

接下来,我想将它安装到自定义文件夹,例如,我的调试 版本没有覆盖原来的安装。

我做了一个快速谷歌搜索,并找到了How can I install a CPAN module into a local directory?。根据这个问题的答案,我决定我应该使用INSTALL_BASE,例如:

perl Makefile.PL INSTALL_BASE=/home/hakon/perl/debug/lib 
make 
make install 

但是,这并不工作,但它仍然安装(并覆盖)到PERL5LIB目录,我已在使用安装在原来的模块cpanm。我的路径 PERL5LIB/home/hakon/perl5。当我检查由Makefile.PL创建Makefile,我可以看到,第21行有:

#  INSTALL_BASE => q[/home/hakon/perl/debug/lib] 

(注意前面的评论),而上线86我有:

INSTALL_BASE = /home/hakon/perl5 

Here是整个Makefile。

回答

3

您正在使用env var PERL_MM_OPTINSTALL_BASE=/home/hakon/perl5传递给MakeMaker。取消它;它覆盖了你的命令行选项。

或者,设置env var而不是传递参数。

export PERL_MM_OPT='INSTALL_BASE=/home/hakon/perl/debug/lib' 
export PERL_MB_OPT='--install_base /home/hakon/perl/debug/lib' 
cpan/cpanm/Makefile.PL/Build.PL ... 
+0

谢谢,它的工作原理!我试过'PERL_MM_OPT = perl Makefile.PL INSTALL_BASE =/home/hakon/perl/debug/lib'。 –

+1

或者,'PERL_MM_OPT = INSTALL_BASE =/home/hakon/perl/debug/lib perl Makefile.PL' – ikegami