2016-09-13 9 views
2

cpanm SomeModule을 사용하여 SomeModule을 약 10 개의 종속 항목과 함께 설치하고 싶지만 대상 서버에는 인터넷에 액세스 할 수 없습니다. 나는 cpanm이 소스 모듈을 다운로드 할 수있는 매우 유사한 개발 기계 (동일한 Perl 환경, 동일한 Perl 버전)를 가지고있다.cpanm을 사용하여 오프라인 서버용 모듈을 묶는 방법

매뉴얼 페이지 cpanm을 연구 한 후 개발 기계에서 tarball을 생성하고 서버로 전송하여 한 번에 모듈을 설치할 수 있다는 느낌이 들었습니다.

불행히도, 어떤 정확한 조합인지는 불투명합니다. 특히, dev 머신에서 모듈이 이미 설치되어 있기 때문에, 나는 여전히 모든 의존성을 tarball (물론 코어 모듈 제외)에 추가해야합니다.

누군가가 dev 컴퓨터와 대상 컴퓨터에 명령을 제공 할 수 있습니까?

편집 : 이것은 약 cpanm입니다. 당신이 cpanm으로 확실히 불가능하다는 것을 권한 말할 수 있다면 물론, 그뿐만 아니라 올바른 대답은 ... 될 것

편집 : 의견과 답변은 지금까지 번들을 만들 pinto 또는 minicpan을 사용하는 것이 좋습니다 CPAN 모듈 소스의 이것은 잘 작동합니다 (특히 pinto은이 용도로 사용하기가 쉽지 않음). 내가 현재의 문제를 해결하기 위해 pinto을 사용했지만 여전히 Pinto 자체는 의 필수 모듈 (Perl-Core와 비교하여> 100)을 가지고있다. 이 질문에 대한 희망은 설치가 필요없는 독립 실행 형 스크립트 인 cpanm이 자체적으로 수행 할 수 있다는 것입니다 (해당 방향으로 갈 수있는 것과 같은 광범위한 옵션이 있음). 커다란 오버 헤드없이 Perl 설치를 부트 스트래핑하는 것이 좋을 것입니다.

+0

http://perlmaven.com/pinto-tutorial –

답변

1

모든 종속 항목에 대해 CPAN 또는 metacpan에서 tars를 수동으로 다운로드 한 다음 복사하여 올바른 순서로 하나씩 설치할 수 있습니다. 10 개의 모듈에 대해서는 약간의 작업이지만 너무 나쁘지는 않습니다. 스크립트를 작성할 수 있습니다.

그러나 minicpan을 사용하여 필요한 정보 만 포함 된 로컬 CPAN을 만들 수도 있습니다. 그것들은 CPAN의 일부 또는 전부의 로컬 사본을 가지기에 좋습니다. 코드를 해킹하면서 모듈을 설치해야하는 경우 USB 드라이브에 저장하십시오. 본질적으로 더 많은 디렉토리와 타르로 가득 찬 디렉토리입니다. 필요로하는 것을 골라서 압축을 풀고 프로덕션 서버로 이동 한 다음 압축을 풀고 cpanm에 해당 로컬 CPAN 미러에서 설치하도록 지시 할 수 있습니다.

+0

실제로 각 CPAN 미러가있는 USB 드라이브를 만들어서 2013 년 베를린의 Perl Workshop에서 스폰서링 상품으로 제공했습니다. . 주로 무료 USB 드라이브 였기 때문에 ... (제 생각에는 ...). – simbabque

+0

물론 모듈을 수동으로 다운로드하거나 다른 것을 사용할 수 있습니다. 질문은 특히'cpanm '에 관한 것입니다. – AnoE

+0

@AnoE 알겠습니다. 어쨌든 나는 이것을 남겨 둘 것이며, 미래의 사람들에게 도움이 될 수 있습니다. – simbabque