2013-03-21 3 views
7

나는 Catalyst, Open Street Map 및 수십 개의 모듈로 small open-source Perl project에서 작업합니다. 내 목표는 바퀴를 재발견하지 않기 때문에 가능한 한 많은 모듈을 CPAN에서 찾을 수 있습니다.오픈 소스 Perl 프로젝트에서 사용하는 모듈 설치를 관리하는 방법은 무엇입니까?

이 모든 것들은 cpanm 및 local :: lib를 통해 설치되었습니다. 새로운 무언가가 필요할 때마다 몇 가지 모듈과 의존성을 설치합니다 (cpanm을 사용하면 간단합니다). 자, 제 프로젝트를 복제 할 사람들이 끔찍한 두통없이 얼마나 많은 모듈을 설치할 수 있을지 스스로에게 묻고 있습니다.

가장 좋은 방법은 무엇입니까? 모든 필요한 모듈을 Makefile.pl에 나열해야합니까? 나는이 프로젝트에 열심히 노력하고 많은 좋은 습관을 따르려고 노력했지만이 특별한 점에 대해 실수를 저지른다고 느꼈기 때문에 걱정 스럽다. 모든 나는 그것이 '필요'키워드 메이크의 모듈 이름을 나열 충분하다고 생각하지 않는다 마법이 너무 것 때문에

나는이 문제에 대한 몇 가지 조언이 필요합니다. 프로젝트에 모든 종속성을 포함시킬 필요가 없으며 나중에 사용하기 위해 모든이 커다란 패키지를 커밋해야합니다. 당신이 촉매를 사용하는 경우

답변

1

직접 (즉, 모듈에 use 또는 require 인 모듈) 만 나열해야합니다 (Makefile.PL). 모듈을 간접적으로 (즉, 사용하는 모듈별로) 걱정할 필요가 없습니다. 그것이 설치 프로그램의 일입니다.

사용하는 모듈 목록을 얻으려면 물론 수동으로 목록을 컴파일 할 수도 있습니다. 그러나 Catalyst에 대한 확실한 안내서이있는 경우 129 페이지에 편리한 Bash 기능이 있습니다. 여기서는 재현 할 수 있는지 잘 모릅니다. Perl::PrereqScanner::App도 있는데, 직접 사용하지는 않았지만 Dist :: Zilla에서 사용했습니다.

FWIW, Dist::Zilla을 사용하여 배포본을 관리하면 (CPAN에 업로드하지 않는 비공개 프로젝트의 경우에도) 배포본을 관리 할 수 ​​있으며 기본적으로 의존성을 추적 할 수 있습니다.

+0

Thanx @ edward-baudrez입니다. Perl을 사용하지 않았다면 너무 좋지 않습니다. :: PrereqScanner :: App, 이제는 내가 최악의 휠로 다시 발명 한 것처럼 느껴집니다. – smonff

4

, 당신은 Makefile.PL 종속성이 촉매 응용 프로그램에 대해 생성으로 필요한 모듈을 추가 할 수 있습니다.

+1

OP는 코드에서'use' 문에 나타나는 CPAN 모듈 만 나열하면됩니다. –

+0

@ SinanÜnür 모듈 백 개를 설치할 때 중요한 점이 있지만 이들 중 일부만 사용하십시오! 대답은 – smonff

1

나는 (멋진 cpanm 같은 저자) carton에서 슬쩍 복용 권하고 싶습니다.

나는 루비의 bundler 및 상자의 문서의 큰 팬이에요 "펄에 대한 Bundler를"로 설명합니다. 나는 그것으로 잠시 뒤로 실험했고, 매우 유망 해 보였다.