[perl] 모든 종속성을 설치하도록 CPAN에 어떻게 지시합니까?

모든 종속성을 설치하도록 CPAN에 어떻게 지시합니까?

나는 이것을 설정하려고 시도했다 cpan.

cpan> o conf prerequisites_policy follow
cpan> o conf commit

나는 여전히 “y”에 몇 번 대답해야했다 (그러나 이전보다 더 적었다).

항상 계속해서 설치하는 방법이 있습니까? 무인화하고 싶다.

나는 플래그가 항상 CPAN이 옳은 일을하도록 신뢰하기를 바라는 것 같고, 그것이 대답을 제안한다면 나는 그것을 따르고 싶다 (항상 Enter무언가를 요청할 때 히트 ).



답변

다음은 자동 최초 CPAN 구성을 포함하여 이러한 변경 사항을 영구적으로 만드는 한 줄입니다.

perl -MCPAN -e 'my $c = "CPAN::HandleConfig"; $c->load(doit => 1, autoconfig => 1); $c->edit(prerequisites_policy => "follow"); $c->edit(build_requires_install_policy => "yes"); $c->commit'

또는 local::lib권한이없는 사용자를위한 모듈 과 결합하십시오 .

perl -MCPAN -Mlocal::lib=~/perl5 -e 'my $c = "CPAN::HandleConfig"; $c->load(doit => 1, autoconfig => 1); $c->edit(prerequisites_policy => "follow"); $c->edit(build_requires_install_policy => "yes"); $c->commit'

CPAN 쉘 등을 사용하기 전에 실행하십시오.


답변

PERL_MM_USE_DEFAULT를 다음과 같이 설정하십시오.

PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install My::Module'

CPAN 응답을 모든 프롬프트에 대한 기본값으로 만들어야합니다.


답변

이 질문에 대한 가장 최근의 가장 큰 대답은 cpanm대신 사용하는 것입니다 (App :: cpanminus 또는 cpanminus라고도 함)!

기술

cpanminus는 CPAN에서 모듈을 가져오고, 압축을 풀고, 빌드하고, 설치하는 스크립트이며 다른 작업은 수행하지 않습니다.

종속성이 없으며 (자체 부트 스트랩 가능) 구성이 필요하지 않으며 독립적입니다. 실행할 때 10MB의 RAM 만 필요합니다.

부트 스트랩 설치하려면 :

curl -L http://cpanmin.us | perl - --sudo App::cpanminus

또는 perlbrew단순히 사용하는 경우

perlbrew install-cpanm

또는 cpan 자체에서 :

cpan install App::cpanminus

그때부터 실행하여 모듈을 설치합니다 (필요한 경우 루트로).

cpanm Foo::Bar


답변

당신이 찾고있는 것은 다음과 같습니다.

cpan> o conf prerequisites_policy follow
cpan> o conf commit


답변

prerequisites_policy 위에 다음 매개 변수를 변경하면 다음과 같습니다.

cpan> o conf prerequisites_policy 'follow'
cpan> o conf build_requires_install_policy yes
cpan> o conf commit

그러면 “ask / yes”에서 “yes”로 변경되고 요청이 중지됩니다.


답변

어쩌면에 관련이 위한 ExtUtils :: AutoInstall을 또는 모듈 :: AutoInstall을가 사용된다. PERL_AUTOINSTALL 환경 변수를 설정해보십시오. (해당 모듈의 문서 참조)


답변

세트

prerequisites_policy

구성에서.

구성 변수를 참조하십시오 .