2013-11-12 5 views
10

Я пытаюсь использовать коробку в качестве контейнера для развертывания. Но у меня возникла небольшая проблема. Я не знаю, как установить частные модули.Как добавить пользовательские модули в карточку perl?

Создан быстрый модуль теста:

h2xs -AX Foo::Bar 

tree Foo-Bar/ 
Foo-Bar/ 
├── Changes 
├── lib 
│   └── Foo 
│    └── Bar.pm 
├── Makefile.PL 
├── MANIFEST 
├── README 
└── t 
    └── Foo-Bar.t 

Упакованный его: tar cvfz Foo-Bar-0.01.tar.gz Foo-Bar/ Скопировал пакет vendor/cache каталога.

ls vendor/cache/ 
Foo-Bar-0.01.tar.gz Try-Tiny-0.18.tar.gz 

cat cpanfile 
requires 'Foo::Bar', '0.01'; 
requires 'Try::Tiny', '0.18'; 

carton install --cached 
Installing modules using /home/donpedro/Garbage/Carton/cpanfile 
! Couldn't find module or a distribution Foo::Bar (0.01) 
Successfully installed Try-Tiny-0.18 
! Installing the dependencies failed: Module 'Foo::Bar' is not installed 
! Bailing out the installation for /home/donpedro/Garbage/Carton/. 
1 distribution installed 
Installing modules failed 

Пробный модуль по умолчанию Milla также (учебный пример, milla new Dist-Name), но результатов нет. В документации упоминается, что для модулей DarkPan просто отбросьте модуль в каталог поставщика/кеша, который я пытаюсь сделать. Официальные модули CPAN могут быть просто удалены в каталог поставщика/кеша.

Что делать дальше или как решить мою проблему? :)

Edit: Miyagawa и lejeunerenard в канале коробки IRC дал мне эту информацию: Для этого, чтобы работать в данный момент, нужна коробка 1,1 (текущая стабильная 1,0) и новая версия cpanfile Dev. cpanfile имеет новую опцию -dist => '/path/to/Foo-Bar.tar.gz' argument for the requires method

Поскольку я слишком ленив, чтобы быть ранним усыновителем, я поеду с Carton для пакетов CPAN и cpanm для частных пакетов.

Спасибо miyagawa и lejeunerenard.

+0

Ответьте на вопрос в поле * reply * и установите его как «принятый» ответ, чтобы рассказать миру, что этот вопрос закрыт :) – smonff

ответ

2

miyagawa и lejeunerenard в картонной коробке IRC предоставили мне эту информацию: для этого на данный момент требуется Carton 1.1 (текущая стабильная версия 1.0) и новая версия cpanfile dev. cpanfile имеет новый параметр -dist => '/path/to/Foo-Bar.tar.gz' для метода require

На данный момент (28.12) до сих пор нет выпуклой версии коробки и ветка git 1.1 3 месяца. Так что нужно немного времени. На данный момент Пинто, похоже, находится в активном развитии.

0

Вы также можете просто поместить свои модули в локальный/lib/custom (или что-то еще), а затем использовать эту библиотеку в своем приложении perl - или добавить ее в PERL5LIB или использовать perl -Ilocal/lib/custom.

Смежные вопросы