2011-05-11 23 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

相關問題