Makefile.PL似乎忽略了INSTALL_BASE

时间:2016-12-16 19:39:06

标签: perl

我正在为Template模块尝试一些自定义修改。我使用以下方式下载了它:

$ cpan -g Template

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

我快速进行了Google搜索,找到了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创建的Makefile.PL时,我可以看到第21行有:

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

(注意前面的评论),而在第86行,我有:

INSTALL_BASE = /home/hakon/perl5

Here是整个Makefile。

1 个答案:

答案 0 :(得分:3)

您正在使用env var INSTALL_BASE=/home/hakon/perl5PERL_MM_OPT传递给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 ...