2011-05-11 3 views
1

"notest"플래그를 사용하여 종속성을 설치하고 local :: lib 홈 디렉토리를 사용하여 Makefile.PL을 갖고 싶지만 파악할 수 없습니다 Makefile.PL 옵션에서.local :: lib 및 Makefile.PL에 대한 notest

내 Makefile.PL은 다음과 같습니다 : 내 bash는 세션으로 (이미 설치되어있는) local::lib를 evalling 것은 아마도 의존성이 지역에 설치 할 몇 가지 플래그 켜집니다 것으로 나타났습니다

use inc::Module::Install; 

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

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

:: 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

+0

내 자신의 Makefile.PL을 설치하더라도 "사용자"로 테스트를 건너 뛰고 싶습니다. Makefile.PL에서 deps 테스트를 건너 뛰는 것은 내가 알고 싶었지만 대답을 찾지 못했던 것입니다. 때로는 "테스트"를 신속하게 또는 간단하게 Makefile.PL을 테스트하고 종속성 테스트를 기다리는 것이 고통 스럽습니다. – ojosilva

+0

그렇다면 cpanminus의 ['-n' 옵션에 만족할 것입니다] (http://p3rl.org/cpanm#OPTIONS)에 나와 있습니다. 모듈을 설치하려는 모든 사용자에게 적용되는 일반적인 대답을 원했던 것처럼 들립니다. – daxim