Подтвердить что ты не робот

Существует ли простой способ создания пакета perl

Я написал несколько библиотек Perl (.pm) и Perlscripts (.pl) на Ubuntu, и мне нужно передать их моим коллегам в моем офисе. Эти скрипты и библиотеки требуют сторонних библиотек. Я хочу сделать это очень просто.

Информация о себе.

  • Я знаю, как создать Perl script.
  • Я знаю, как создать файл bash.
  • У меня нет опыта в создании файла MAKE, rpm, Deb и т.д.
4b9b3361

Ответ 1

Я бы рекомендовал использовать Module::Starter, чтобы настроить шаблон для каждого модуля. После его установки вы можете вызвать module-starter из командной строки, например:

module-starter --module=My::Module --author="Jessada Thutkawkorapin" [email protected]

или, если вам нужен дистрибутив с несколькими модулями:

module-starter --distro=Foo --module=Foo,Foo::Bar,Foo::Baz --author="Jessada Thutkawkorapin" [email protected]

Затем просто перезапишите файлы .pm с вашими модулями, включите любые юниверсы, которые вы хотите запустить (тесты по умолчанию в основном проверяют синтаксис модуля вместе с синтаксисом pod). Базовая установка модулей выполняется через

perl Makefile.PL
make
make test
make install

(технически, make test является необязательным, но он настоятельно рекомендуется).

Теперь, если эти модули полагаются на другие модули CPAN, вы можете использовать модуль CPAN, чтобы установить их, например:

use strict;
use warnings;
use CPAN;

#populate however you'd like, either hard-coded, read from a file, etc.
my @modules_to_install=(); 

foreach(@modules_to_install)
{
  CPAN::Shell->install($_);
}

Таким образом, вы можете распространять zip/tarball/etc с папками и файлами, которые module-starter запущен (и который вы изменили) вместе с приведенным выше script, чтобы установить зависимости CPAN и вызвать его, скажем, cpan_install.pl. Если вы хотите, вы можете обернуть все в конечном script, называемом, скажем, install.pl, который выполнит все эти действия.

Ответ 2

В наши дни мой обычный метод состоит в том, чтобы просто скопировать файл Build.PL из одного из моих существующих дистрибутивов и перейти оттуда. Очевидно, что это не полезная стратегия для первого, но CPAN полна тысяч этих файлов.

Для простого простого .pm файла pure-perl-дистрибутива, возможно, проще всего начать с копирования другого файла Build.PL и изменить поля, подходящие для вашего случая. Вероятно, все, что вам нужно изменить, это поля module_name и requires.

Здесь простой мой, вы можете украсть ^ W, вдохновленный:

use strict;
use warnings;

use Module::Build;

my $build = Module::Build->new(
   module_name => 'Your::Name::Here',
   requires => {
      'Your::Requirements::Here' => '1.23',
   },
   build_requires => {
      'Test::More' => 0,
   },
   license => 'perl',
   create_makefile_pl => 'traditional',
   create_license => 1,
   create_readme  => 1,
);

$build->create_build_script;

Эти поля, в порядке, означают:

  • Имя первичного модуля в дистрибутиве - это место, из которого берется имя самого дистрибутива, а также его версия и абстрактное резюме
  • Другие модули, от которых этот дистрибутив будет зависеть от сборки или запуска
  • Другие модули, которые этот дистрибутив будет зависеть от сборки, но не будут нужны после его установки (обычно это будут модули Test:: или другие инструменты сборки).
  • Лицензионные условия, применяемые к распространению
  • Создать устаревшее Makefile.PL для более старых клиентов CPAN, которые не понимают протокол Build.PL
  • Создайте файл LICENSE автоматически из заявленных условий лицензирования выше
  • Создайте файл README автоматически, превратив документацию POD основного модуля в открытый текст