2011-05-11 56 views
1

我有一个Makefile.PL,我想用“notest”标志安装依赖关系,并使用我的local :: lib home目录,但我无法掌握在Makefile.PL选项上。local :: lib和notest for Makefile.PL

我Makefile.PL看起来是这样的:

use inc::Module::Install; 

name 'MyApp'; 
all_from 'lib/MyApp.pm'; 

requires 'Moose'; 
requires 'Catalyst::Runtime'; 
install_script glob('script/*.pl'); 
auto_install; 
WriteAll; 

我注意到evalling local::lib(已经安装)到我的bash会话上一些标志这可能会使依赖安装到本地转:: lib,但我不确定,我还没有测试过它:

$ eval $(perl -Mlocal::lib) 
$ perl -Mlocal::lib 
export PERL_LOCAL_LIB_ROOT="$PERL_LOCAL_LIB_ROOT:/home/user/perl5"; 
export PERL_MB_OPT="--install_base /home/user/perl5"; 
export PERL_MM_OPT="INSTALL_BASE=/home/user/perl5"; 
export PERL5LIB="/home/user/perl5/lib/perl5/i686-linux:/home/user/perl5/lib/perl5:$PERL5LIB"; 
export PATH="/home/user/perl5/bin:$PATH"; 

但我不确定这会改变Makefile.PL deps行为。

回答

3

你应该从eval咒语,例如永久应用设置将其添加到.bashrc

是的,设置PERL_MM_OPT变量会改变作为Module :: Install基础的ExtUtils :: MakeMaker的行为。见INSTALL_BASE in ExtUtils::MakeMaker

你不必在你的Makefile.PL改变任何东西。


PERL_CPANM_OPT=-n cpanm … 
cpanp -i --skiptest … 

一般来说,跳绳测试是不是在你的手,但用户的。该cpan client甚至没有允许这样做,只是强迫安装失败的测试步骤之后。如果用户手动安装的依赖,他有超过每一步的完全控制,你不能阻止他运行在所有的测试步骤。

我想你现在需要解释一下你想通过禁止测试来达到目的。

+0

整齐,谢谢,但依赖怎么样使以“notest”安装? – ojosilva 2011-05-11 12:51:21

+0

我想跳过测试为“用户”,即使我安装我自己的Makefile.PL。在Makefile.PL中跳过测试代码是我想知道的东西,但从未找到答案。有时候我需要快速地“测试”一些东西,或者简单地测试一下Makefile.PL,等待依赖测试是一件很痛苦的事...... – ojosilva 2011-05-11 19:30:44

+0

对,那么你会对[cpanminus的''-n'选项] (http://p3rl.org/cpanm#OPTIONS),如答案中所示。这听起来很像你想要一个适用于任何想要安装你的模块的用户的一般答案。 – daxim 2011-05-11 19:35:01

相关问题