모든 CPAN 모듈을 최신 버전으로 업데이트하려면 어떻게합니까?


136

모든 CPAN 모듈을 최신 버전으로 업데이트하려면 어떻게합니까?

답변:


145

사용하는 다른 방법 upgrade의 기본 CPAN 쉘에서 사용하는 것입니다 cpanminuscpan-outdated.

이것들은 사용하기 쉽고 민첩하여 CPAN 쉘로 돌아 가기가 거의 없습니다. 한 번에 모든 모듈을 업그레이드하려면 명령은 다음과 같습니다.

cpan-outdated -p | cpanm

cpanminus문서 설명과 같이 설치하는 것이 좋습니다 .

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

그리고 다음을 cpan-outdated사용하여 다른 모든 CPAN 모듈과 함께 설치하십시오 cpanm.

cpanm App::cpanoutdated

BTW : 사용하는 경우 perlbrew아래에 설치 한 모든 Perl에 대해이 작업을 반복해야합니다.

당신은 더에 대해 알 수 cpanminuscpan-outdated여기에 Github에서의 REPOS에서 :


4
내장 솔루션이있는 동안 왜 그러한 추가 도구를 사용합니까 (두 번째 답변 참조)?
eav

3
"이러한 추가 도구를 사용하는 이유"OP의 질문 범위를 벗어난 cpanimus는 Enter 키를 누르거나 [y] es를 입력하라는 CPAN의 문제를 해결합니다. 바닐라 CPAN 으로는 이 동작을 확실하게 억제 할 수 없습니다 . 이것은 모든 종류의 cron 또는 CI 서버가 참여하자마자 중요 해지고 커피를 마시고있는 동안 멈추지 않을 것입니다. 종종 바닐라 CPAN의 경우)이 답변 참조 stackoverflow.com/questions/898782/…
Noah Sussman

[root @ portal-test bugzilla-4.4.4] # cpan-outdated -p | cpanm / usr / bin / cpan-outdated 170 행에서 "LWP :: UserAgent"패키지를 통해 "새"객체 메소드를 찾을 수 없습니다.
shorif2000

3
그것들은 오래되었습니다 (2006 년 펄 날짜, 2005 년 LWP). 이상적으로는 둘 다 최신 버전이 필요합니다. 어떤 이유로 든 이렇게 할 수 없다면 cpanm | cpan-outdated 작업을 수행 할 때까지 LWP 버전을 버전별로 업그레이드합니다. NB. 중요-CentOS가 설치된 Perl을 사용하는 경우 이것과 함께 CPAN 또는 CPANMINUS를 사용하지 마십시오! OS 패키지와 혼합하지 마십시오 !! 대신 Perlbrew를 사용하여 자신의 Perl을 추출하십시오 (그리고이 안에 cpanminus 등을 사용하십시오).
draegtun

1
cpan-outdated -p업그레이드를 실제로 실행하기 전에 먼저 수행 할 작업을 쉽게 확인할 수 있기 때문에이 솔루션이 마음 에 듭니다. 함께 드라이 드라이를하는 방법은 확실하지 않습니다cpan upgrade
Stephen Ostermiller

51

모든 Perl 패키지 (CPAN 모듈)를 쉽게 업그레이드하는 방법은 다음과 같습니다.

cpan upgrade /(.*)/

cpan은 이와 같은 정규식을 인식하고 설치된 모든 패키지를 업데이트 / 업그레이드합니다.


8
좋아, 이만큼 멋지 지는 cpanminus않지만 적어도이 작업을 수행하기 위해 아무것도 다운로드 할 필요가 없습니다.
David W.

13
이 명령에 문제가있는 사람들을 위해; 를 통해 cpan shell cpan을 실행 한 다음 upgrade /(.*)/cpan shell에서 를 실행하십시오 .
earthmeLon

33

Strawberry Perl의 경우 다음을 시도하십시오.

cpan -u

4
일반 Perl도 마찬가지입니다. 맨 페이지에서 :-u Upgrade all installed modules. Blindly doing this can really break things, so keep a backup.
Chloe


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.