Как добавить пользовательские модули в карточку perl? - программирование
Подтвердить что ты не робот

Как добавить пользовательские модули в карточку 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 дали мне эту информацию: Для этого на данный момент требуется Carton 1.1 (текущая стабильная версия 1.0) и новая версия cpanfile dev. cpanfile имеет новую опцию -dist => '/path/to/Foo-Bar.tar.gz' argument for the requires method

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

Спасибо miyagawa и lejeunerenard.

4b9b3361

Ответ 1

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 месяца. Так что нужно немного времени. В настоящее время Пинто находится в активном развитии.

Ответ 2

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