2016-12-16 140 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