cpm - a fast CPAN module installer
4211 단어 Perl
어제는 nqounet씨에 의한 「지연 실행과 임시 실행 (dry_run)에 대해 생각해 보았습니다.」이었습니다.
오늘은 내가 개발하고 있는 CPAN 모듈 인스톨러 cpm 를 소개하고 싶습니다.
cpm이란?
CPAN 모듈 인스톨러라고 하면, cpanm 가 세계적으로 유명하고 많은 분이 사용하고 있다고 생각합니다.
나 자신도 cpanm을 정말 잘 사용하고 있습니다만, 대량의 의존이 있는 어플리케이션을 개발하고 있을 때 등 cpanm이라면 CPAN모듈 인스톨에 상당한 시간이 걸리고, 좀 더 빨리 되지 않을까 생각하고 있었습니다.
그래서 cpm을 만들었습니다. cpm은 내부에서 cpanm을 병렬로 사용하여 CPAN 모듈 설치를 빠르게 수행합니다.
글쎄요, 속도를 찾아서 만든 cpm이지만 최근 몇 가지 다른 기능도 추가했기 때문에
오늘은 그 소개하고 싶습니다.
darkpan과의 협력
darkpan은 CPAN의 전부 또는 일부의 미러를 의미합니다. OrePAN2 , CPAN::Mini 등을 사용하면 비교적 간단하게 만들 수 있습니다.
이 darkpan의 모듈 설치에 cpm이 지원됩니다.
예를 들어/opt/darkpan에 darkpan이 있을 때
> cpm install --resolver 02packages,/opt/darkpan Your::Module
그렇다면/opt/darkpan에서 Your::Module을 설치합니다.
이 방법을 사용하면/opt/darkpan에서 Your::Module을 설치하려고합니다. 만약/opt/darkpan은 일부의 미러이기 때문에 존재하지 않는 모듈은 MetaDB에 fallback하여 찾고 싶다면,
> cpm install --resolver 02package,/opt/darkpan --resolver metadb Your::Module
하십시오.
종속 모듈을 git에서 설치
위 darkpan을 사용하면 사내 전용 모듈도 관리 할 수 있습니다. 단지 모듈을 github로 관리하는 경우, 거기에서 직접 설치할 수 있다면 더욱 유용 할 수 있습니다.
그런 경우에는
requires "Your::WebApp", git => "git://github.com/you/Your-WebApp.git", ref => "develop";
requires "Plack", ">= 1.000, < 2.000";
라는 cpanfile을 준비하고
> cpm install
그렇다면 github에서 직접 설치할 수 있습니다.
덧붙여 이 기능은 capnm/Carton에도 일시적이었습니다만, 현재는 삭제되고 있습니다. 다른 toolchain과의 제휴를 생각할 때, 이 「CPAN 이외의 디스트리뷰션 보존 장소」를 어떻게 취급해 나갈까는, 논의가 있습니다.
resolver가 유연
이제 위의 두 가지 특징으로 대표되는 바와 같이, cpm은 resolver = "모듈 이름에서 배포 저장 위치를 가져오기"가 유연하게 만들어졌습니다.
사실, 그들은 App::cpm::Resolver::*의 네임 스페이스 아래에 묶여 있으며,
쉽게 변경할 수 있습니다.
앞으로 이를 사용자가 쉽게 변경할 수 있는 인터페이스를 준비하고 싶습니다.
미래
이상 cpm의 특징에 대해 설명해 왔습니다.
이제 이미 몇 가지 CPAN 모듈 설치 프로그램이 존재할 때 cpm의 존재 의미는 무엇입니까?
앞서 언급했듯이 cpanm은 안정적인 CPAN 모듈 설치 프로그램으로 전세계에서 사용되고 있습니다. 따라서 대폭적인 내부 변경, 신규 기능의 추가에는 조금 신중하게 할 수밖에 없습니다.
그래서 cpm입니다. 즉, cpm을 sandbox로 파악하고 어떤 기능이 유용하고 어떤 기능이 의미가 없는지 파악하고 싶습니다.
사실, 아직 시도하고 싶은 것 많이 있습니다. 만약 여러분 안에 CPAN 모듈 인스톨러에 불만을 가지고 있는 분, 새로운 기능의 제안을 가지고 있는 분이 있으면, 꼭 논의하고 싶다고 생각합니다.
그런데 내일은 ytnobody씨로 Azure + Perl로 서버리스 작업 시스템 만들기 입니다!
Reference
이 문제에 관하여(cpm - a fast CPAN module installer), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/skaji/items/85b9714180329efc8bde
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
darkpan은 CPAN의 전부 또는 일부의 미러를 의미합니다. OrePAN2 , CPAN::Mini 등을 사용하면 비교적 간단하게 만들 수 있습니다.
이 darkpan의 모듈 설치에 cpm이 지원됩니다.
예를 들어/opt/darkpan에 darkpan이 있을 때
> cpm install --resolver 02packages,/opt/darkpan Your::Module
그렇다면/opt/darkpan에서 Your::Module을 설치합니다.
이 방법을 사용하면/opt/darkpan에서 Your::Module을 설치하려고합니다. 만약/opt/darkpan은 일부의 미러이기 때문에 존재하지 않는 모듈은 MetaDB에 fallback하여 찾고 싶다면,
> cpm install --resolver 02package,/opt/darkpan --resolver metadb Your::Module
하십시오.
종속 모듈을 git에서 설치
위 darkpan을 사용하면 사내 전용 모듈도 관리 할 수 있습니다. 단지 모듈을 github로 관리하는 경우, 거기에서 직접 설치할 수 있다면 더욱 유용 할 수 있습니다.
그런 경우에는
requires "Your::WebApp", git => "git://github.com/you/Your-WebApp.git", ref => "develop";
requires "Plack", ">= 1.000, < 2.000";
라는 cpanfile을 준비하고
> cpm install
그렇다면 github에서 직접 설치할 수 있습니다.
덧붙여 이 기능은 capnm/Carton에도 일시적이었습니다만, 현재는 삭제되고 있습니다. 다른 toolchain과의 제휴를 생각할 때, 이 「CPAN 이외의 디스트리뷰션 보존 장소」를 어떻게 취급해 나갈까는, 논의가 있습니다.
resolver가 유연
이제 위의 두 가지 특징으로 대표되는 바와 같이, cpm은 resolver = "모듈 이름에서 배포 저장 위치를 가져오기"가 유연하게 만들어졌습니다.
사실, 그들은 App::cpm::Resolver::*의 네임 스페이스 아래에 묶여 있으며,
쉽게 변경할 수 있습니다.
앞으로 이를 사용자가 쉽게 변경할 수 있는 인터페이스를 준비하고 싶습니다.
미래
이상 cpm의 특징에 대해 설명해 왔습니다.
이제 이미 몇 가지 CPAN 모듈 설치 프로그램이 존재할 때 cpm의 존재 의미는 무엇입니까?
앞서 언급했듯이 cpanm은 안정적인 CPAN 모듈 설치 프로그램으로 전세계에서 사용되고 있습니다. 따라서 대폭적인 내부 변경, 신규 기능의 추가에는 조금 신중하게 할 수밖에 없습니다.
그래서 cpm입니다. 즉, cpm을 sandbox로 파악하고 어떤 기능이 유용하고 어떤 기능이 의미가 없는지 파악하고 싶습니다.
사실, 아직 시도하고 싶은 것 많이 있습니다. 만약 여러분 안에 CPAN 모듈 인스톨러에 불만을 가지고 있는 분, 새로운 기능의 제안을 가지고 있는 분이 있으면, 꼭 논의하고 싶다고 생각합니다.
그런데 내일은 ytnobody씨로 Azure + Perl로 서버리스 작업 시스템 만들기 입니다!
Reference
이 문제에 관하여(cpm - a fast CPAN module installer), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/skaji/items/85b9714180329efc8bde
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
requires "Your::WebApp", git => "git://github.com/you/Your-WebApp.git", ref => "develop";
requires "Plack", ">= 1.000, < 2.000";
> cpm install
이제 위의 두 가지 특징으로 대표되는 바와 같이, cpm은 resolver = "모듈 이름에서 배포 저장 위치를 가져오기"가 유연하게 만들어졌습니다.
사실, 그들은 App::cpm::Resolver::*의 네임 스페이스 아래에 묶여 있으며,
쉽게 변경할 수 있습니다.
앞으로 이를 사용자가 쉽게 변경할 수 있는 인터페이스를 준비하고 싶습니다.
미래
이상 cpm의 특징에 대해 설명해 왔습니다.
이제 이미 몇 가지 CPAN 모듈 설치 프로그램이 존재할 때 cpm의 존재 의미는 무엇입니까?
앞서 언급했듯이 cpanm은 안정적인 CPAN 모듈 설치 프로그램으로 전세계에서 사용되고 있습니다. 따라서 대폭적인 내부 변경, 신규 기능의 추가에는 조금 신중하게 할 수밖에 없습니다.
그래서 cpm입니다. 즉, cpm을 sandbox로 파악하고 어떤 기능이 유용하고 어떤 기능이 의미가 없는지 파악하고 싶습니다.
사실, 아직 시도하고 싶은 것 많이 있습니다. 만약 여러분 안에 CPAN 모듈 인스톨러에 불만을 가지고 있는 분, 새로운 기능의 제안을 가지고 있는 분이 있으면, 꼭 논의하고 싶다고 생각합니다.
그런데 내일은 ytnobody씨로 Azure + Perl로 서버리스 작업 시스템 만들기 입니다!
Reference
이 문제에 관하여(cpm - a fast CPAN module installer), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/skaji/items/85b9714180329efc8bde
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(cpm - a fast CPAN module installer), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/skaji/items/85b9714180329efc8bde텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)