Распространение Perl-приложений - PullRequest
4 голосов
/ 02 августа 2010

Я недавно создал небольшое приложение Perl, которое использует несколько неосновных модулей, которые необходимо установить через CPAN.

Есть ли способ распространения приложения с возможностью проверки, чтобы увидеть,необходимые модули установлены и вытащить их из CPAN, если они не?Я полагаю, что я ищу что-то похожее на функцию автоматической установки зависимостей CPAN.

Я думал об использовании module-starter и Module :: Install, чтобы создать структуру каталогов, похожую на модуль, а затем настроить файл сборки.установить приложение в / bin ... но я не уверен, что это решение для рожка.

Ответы [ 2 ]

3 голосов
/ 02 августа 2010

Это не решение для рожка, а правильное решение.Вы должны позволить специализированному инструменту обрабатывать зависимости из-за угловых случаев, например, написать в инструкции по установке:

  1. Распаковать архив.
  2. Запустить cpan . в неархивированном каталоге.

Вам не нужно изменять файл сборки для установки программ в каталог bin, он делает это по умолчанию.

0 голосов
/ 03 августа 2010
BEGIN {
    eval "use evil::module";
    if($@) { `sudo perl -MCPAN -e 'install evil::module'`; exit ; }
}
  1. Вы можете легко проверить наличие определенного модуля и a) попытаться установить его и выйти / перезапустить приложение b) croak / die.(как в приведенном выше фрагменте кода)

  2. Вы также можете присоединить модули, которые вы хотите упаковать, извлечь их в определенный каталог и отправить каталог в @INC в блоке начала.

...