2008-11-04 6 views
64

많은 테스트/앉아 환경을 만들기 위해 프로덕션 환경을 복제해야합니다.특정 버전의 Perl 모듈을 어떻게 설치할 수 있습니까?

필자가해야 할 일 중 하나는 수년 동안 (내부 및 외부 모듈 포함) 설치된 모든 모듈로 Perl을 빌드하는 것입니다. CPAN.pm autobundle을 사용할 수는 있지만 테스트 환경에서 생산에 필요한 외부 모듈의 훨씬 새로운 버전이 생성됩니다.

특정 버전의 Perl 모듈을 설치하고 설치하는 가장 쉬운 방법은 무엇입니까?

답변

36

원하는대로 정확하게 CPAN 미러를 만드십시오. Stratopan.com (서비스) 및 Pinto (위에 구축 된 도구)을 사용하면 도움이됩니다.

CPAN 도구는 PAUSE가 최신 버전 만 색인하기 때문에 모든 배포판의 최신 버전 만 설치합니다. 그러나 원하는 배포판이있는 개인 CPAN을 직접 만들 수 있습니다. 자신 만의 CPAN 미러를 원한다면 그 미러에만 CPAN 툴을 지정하면 해당 버전 만 설치됩니다. 1 분 만에 더.

이제 여러 가지 버전이 필요합니다. 원하는만큼의 미러를 만들 수 있으며 원하는 미러 버전을 확인할 수 있도록 미러를 소스 제어에 배치 할 수도 있습니다.

CPAN :: Mini :: Inject와 같은 도구를 사용하면 자신의 CPAN을 설정할 수 있습니다. 기본 예제는 my talks on Slideshare이고 일부 데모는 my videos on Vimeo입니다. 제목에 "CPAN"또는 "BackPAN"이있는 것은 무엇이든보십시오. 나는 The Perl Review에도 그것에 관한 약간의 내용을 가지고 있을지도 모르고, 다음 호에 의해해야한다고 생각합니다. :)

요즘 저는 dpan (DarkPAN 용) 프로그램에서 작업하고 있습니다.이 프로그램은 임의의 디렉토리를보고 Perl 배포판을 찾고 필요한 구조와 색인 파일을 만들 수 있습니다. dpan을 실행하면 CPAN 클라이언트를 향하게하는 URL이 생기고 꺼집니다. 그것은 MyCPAN-Indexer 프로젝트의 일부이며, Github입니다. 대부분 기업 고객과 협력하여 설정을 사용자 지정하기 때문에 감독되지 않은 공용 사용에는 아직 준비가되지 않았습니다. 관심이 있으시면 언제든지 저에게 질문하십시오.

최근에 올바른 색인 파일을 구축하는 데 도움이되는 CPAN::PackageDetails을 출시했습니다. 아직 조금 어리지만, 다시 한번 특별한 것을 필요로 할 때 그냥 물어보십시오.

+1

감사합니다. 브라이언, 현재 로컬 미니 cpan을 구축 중입니다. 그런 다음 로컬 모듈 + 특정 버전으로 다운 그레이드해야하는 모듈을 주입 할 것입니다. –

101

bdfoy는 최상의 대규모 솔루션을 제공하지만, 몇 개의 모듈 만 설치하려는 경우 tarball에 대한 경로를 참조하여 특정 배포판을 설치하도록 CPAN 셸에 요청할 수 있습니다 (CPAN 트리의 상단에 상대적) .

cpan> install MSCHWERN/Test-Simple-0.62.tar.gz 

URL 목록에 BackPAN에 대한 URL을 보내면 이전 버전을 설치할 수 있습니다.

cpan> o conf urllist push http://backpan.perl.org/ 

이 아래 CPAN.pm FAQ에 "어떻게 모듈의 '개발자 유출'설치합니까?"

+0

니스. 이 때문에 업그레이드 할 수없는 서버와의 호환성 문제를 해결할 수 있습니다. 감사! –

+0

요즘 URL이 작동하지 않는다고 생각합니다. http://backpan.perl.org/ – flamey

+0

'MSCHWERN/Test-Simple-0.62.tar.gz 설치' @Schwern 나는 M/MS 접두어를 사용하여 tarball을 찾으십시오. –

7

[거의 5 년이 지난 지금 많은 호응을 얻고있는 질문입니다. 이 페이지는 여전히 Google 검색 결과에 나타나야하므로 업데이트가 손상되지 않습니다.]

Carton은 여기서 언급할만한 가치가 있습니다.CartonApp::cpanminus, App::cpanoutdated, perlbrew, 등과 같은 스타일의 비교적 최근 도구입니다. al. 작성자 (Miyagawa)는 "알파"품질이라고 부르지 만, 현재 상태 상자에서도 여러 버전의 튜닝 된 모듈을 여러 환경에서 유지 관리하는 것을 단순화합니다.

Pinto도 일부 응답과 관련된 최근 도구입니다 (실제로 응답자 중 한 명이 기여자 임).

4

Stratopan.com이 또 다른 대안입니다. Stratopan은 클라우드에 사설 CPAN을 제공합니다. Stratopan 저장소를 특정 버전의 모듈 (및 의존성)으로 채운 다음 표준 Perl 도구 체인을 사용하여 설치할 수 있습니다. 저장소는 으로 변경하기로 결정할 때만 변경되므로 언제든지 원하는 모듈의 버전을 가져올 수 있습니다.

면책 조항 : Stratopan을 작동합니다.

14
cpan install App::cpanminus 
cpanm Your::[email protected] 

+0

이것은 "** ** Perl 모듈의 ** 특정 버전을 설치하는"방법에 대한 훌륭한 대답입니다 (한 번에 질문이 나온 것처럼). 특히 cpanm을 이미 사용하고있는 경우. – Randall

2

것 같다 (다른 답변에서 참조로 판지는, 아래에 명시 버전 요구 사항을 해결하기 위해. cpanm 사용) 하는 모든 모듈과 == <version> 구문을 사용하여 원하는 버전 (나열하는 cpanfile를 만드는 특정 릴리스에 고정) 여기에도 잘 작동 할 수 있습니다. 즉, 모듈을 설치하는 데 Carton 또는 cpanm을 사용하는 것입니다.

이렇게하면 dev/staging 환경에서 특정 모듈을 업그레이드하기 위해 파일을 신속하게/쉽게 조정할 수 있다는 이점이 있습니다. 개인 CPAN 미러로는 (여러 개의 미러를 만들지 않고) .

관련 문제