2013-01-21 1 views
4

CPAN이 구술 전통과 소문에 의존하지 않고 처음부터 CPAN을 재구성하는 데 사용할 수있는 충분한 세부 사항으로 권위 있고 사실상의 문서 세부 사항이 있습니까? 디렉토리 구조를 문서화하는 것, 배포판에 있어야하는 파일, 버전 번호가 실제로 작동하는 방법, 누가 무엇을 업로드 할 수 있는지, 그리고 search.CPAN.org 웹 사이트에 정확히 나열되어있는 것 등?'공식적인'CPAN 사양 문서가 있습니까?

+0

아마도 [this] (http://stackoverflow.com/questions/77695/how-do-i-set-up-a-local-cpan-mirror) 도움이 될까요? – hd1

+1

search.cpan.org는 CPAN이 아닙니다. 전 또는 후자에 대해 묻고 있습니까? – ikegami

+0

@ hd1 고마워요.하지만 거울을 세우는 것만으로 자세한 내용을 찾고있었습니다. – user1481

답변

7

CPAN은 미러 된 파일 저장소에 불과합니다. 파일은 PAUSE를 사용하여 업로드됩니다. About PAUSE은 대부분의 질문에 대한 대답은 아닙니다.

search.cpan.org에 대해서도 언급했지만 CPAN에는 포함되지 않았습니다. CPAN에 액세스하는 많은 도구 중 하나 일뿐입니다. 웹 사이트 https://metacpan.org/ 및 명령 줄 도구 cpancpanm은 기타입니다.

1

MyCPAN, Pinto 및 StratoPAN과 같이 PAUSE가 제공하고 고객이 기대하는 색인 ​​파일로 CPAN과 같은 저장소를 만드는 다양한 프로젝트가 있습니다. 무엇을 성취하려고합니까? 귀하의 질문은 다른 많은 것들에 감동

2

...

는 "A"CPAN 특정 구조와 몇 가지 특별한 파일이 단지 디렉토리입니다. 구조와 파일 형식은 공식적으로 정의되지는 않지만 매우 간단합니다. 당신을 위해 그 파일을 만들 수있는 여러 모듈이 있습니다 (대부분 CPAN :: 네임 스페이스에 있습니다). 가장 중요한 파일은 모듈 이름을 포함하는 배포 아카이브의 경로에 매핑하는 modules/02packages.details.txt.gz 파일 ("색인")입니다. 인덱스의 경로는 authors/id 디렉토리에 대한 상대 경로로 간주됩니다. 그리고 그것은 꽤 많이 있습니다. authors/01mailrc.txt.gzmodules/03modlist.data.gz과 같은 다른 파일이 있어야하며 유효한 형식이지만 실제 데이터가 필요하지 않습니다. 모듈 설치 프로그램의 기본 작업에는 필수적이지 않습니다.

"CPAN은 커뮤니티가 배포본을 공유하는 중앙 CPAN입니다. 저자는 자신의 작품을 PAUSE을 통해 "the"CPAN에 넣을 수 있습니다.이 작업은 배포를 분석하고 색인을 생성하는 작업을 수행합니다. About 페이지에는 PAUSE가 높은 수준에서 작동하는 방식이 설명되어 있습니다. "CPAN은 실제로 여러 위치에 미러링되어 있으므로 설치 관리자가 그 중 하나를 가리킬 수 있습니다. 쉽게 create your own mirror 수 있습니다. search.cpan.orgmetacpan은 "the"CPAN 위에 구축 된 검색 및 찾아보기 서비스입니다. 따라서 PAUSE에 배포본을 업로드하면 (결국) 해당 사이트에도 배포판이 표시됩니다.

실제로 배포를 만드는 방법은 좀 더 복잡합니다. 다시 말하지만 배포판이 어떻게 보이는지에 대한 공식적인 정의는 없습니다. PAUSE는 실제로 어떤 것에 대해서만 받아 들일 것이고 그것을 이해하기 위해 열심히 노력할 것입니다. 그러나 거의 모든 제작자는 Module::Build 또는 ExtUtils::MakeMaker과 같은 도구를 사용하여 대부분의 작업을 수행합니다. 이 도구는 코드 구성을위한 규칙을 규정하고 PAUSE 및 기타 시스템이 배포를 이해하는 데 도움이되는 파일을 생성 할 수 있습니다. 더 높은 수준에서 Module::StarterDist::Zilla과 같은 도구는 더 많은 인프라를 생성합니다. 중 하나를 사용해야하지만 중 하나 이상을 사용해야합니다.

당신이 선택한 배포판 (아마도 자신의 독점 모듈과 "the"CPAN의 일부 오픈 소스 모듈)을 사용하여 자신의 CPAN을 구성하는 것이 목표라면 Pinto 일 수 있습니다. Pinto는 원하는 배포판을 사용하여 로컬 CPAN과 같은 저장소를 만듭니다. Pinto는 의존성을 다루는 방법을 알고 상류 저장소 (일반적으로 "the"CPAN)에서 가져옵니다.Pinto에는 의존성이 진화함에 따라 변화를 관리하는 데 도움이되는 도구가 있습니다. 또한 기존 Perl 모듈 설치 프로그램과 모두 호환되므로 로컬 저장소에서 "설치"만하면됩니다.