CPAN에 모든 종속성을 설치하도록하려면 어떻게합니까?
CPAN에 모든 종속성을 설치하도록하려면 어떻게합니까?
나는 이것들을 설정하려고 시도했다 cpan
:
cpan> o conf prerequisites_policy follow
cpan> o conf commit
나는 여전히 "y"라고 몇 번 대답해야했다.
항상 설치하고 설치하는 방법이 있습니까? 무인으로 만들고 싶습니다.
CPAN이 항상 올바른 일을 할 수 있도록 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 또는 Module :: AutoInstall 사용 과 관련이 있습니다. PERL_AUTOINSTALL 환경 변수를 설정하십시오. (해당 모듈의 설명서 참조)
세트
prerequisites_policy
구성에서.
구성 변수를 참조하십시오 .
개인적으로 나는 그런 식으로 설정을 수정하기 위해 몇 번만 시도했으며 실제로 인수 CPAN.pm
를주지 cpan
않고 CPAN.pm
대화식 프롬프트에서 구성 하여 셸에 넣기가 더 쉽다는 것을 알았습니다 .
$ cpan
cpan> o conf init
CPAN.pm
인터페이스 구성 유틸리티 가 시작됩니다 . 간단히 살펴보고 필요한 곳에 "팔로우"를 지정하십시오 (질문을 잊어 버립니다).
I found this to be, by far, the quickest and most reliable way to install CPAN modules:
yes | perl -MCPAN -e "CPAN::Shell->notest(qw!install Your::Module!)"
I'm writing this for benefit of people who may have come to this page searching for a way to install all module dependencies needed by a particular perl script. I wrote a script for that:
It should be run as ./installdep.pl yourscript.pl
#!/usr/bin/perl
`sudo apt install cpanminus`;
while (<>) {
if (/USE /i)
{
my $line=$_;
$line=~ s/\s//g;
$line=~ /^(.*)\./;
$line=~ s/\;//;
$line=~s/^USE//i;
$line=~s/lib.*//i;
$line=~s/feature.*//i;
$line=~s/strict//i;
$line=~s/warnings//i;
$line =~ s/^(.*)\(.*/$1/;
unless ($line eq '') {
my $cmd='sudo cpanm '.$line;
print "Installing $line \n";
open my $cmd_fh, "$cmd |";
while (<$cmd_fh>) {
print "$_";
}
close $cmd_fh;
print "\n";
}
}
}
This will use cpanminus to install all module dependencies required by your script. If cpanm isnt installed, it will install it.
참고URL : https://stackoverflow.com/questions/898782/how-do-i-tell-cpan-to-install-all-dependencies
'programing tip' 카테고리의 다른 글
자바 스크립트에서 이중 부정 (!!)-목적은 무엇입니까? (0) | 2020.07.25 |
---|---|
D3.js : 임의의 요소에 대해 계산 된 너비와 높이를 얻는 방법은 무엇입니까? (0) | 2020.07.25 |
typescript에서 두 날짜 사이의 시간을 계산하는 방법 (0) | 2020.07.25 |
일부 숫자에 천 단위 구분 기호로 쉼표가 포함 된 경우 데이터를 읽는 방법은 무엇입니까? (0) | 2020.07.25 |
자바 스크립트 문자열에 변수를 어떻게 넣습니까? (0) | 2020.07.24 |