Perl CPAN-стиль Упаковка без lib / *. Pm - PullRequest
3 голосов
/ 20 января 2011

У меня есть коллекция сценариев Perl и пара XML-файлов данных, от которых они зависят, которые я хотел бы распространять. В настоящее время у меня есть сценарий оболочки, который копирует bin / * и share / * в целевое дерево установки. Это кажется немного неуклюжим, поэтому я бы хотел использовать что-то вроде стандартного CPAN-способа упаковки Perl.

Имеет ли смысл объединять то, что у меня есть в пакете в стиле CPAN? Я подозреваю, что в этом нет ничего плохого, но каждый учебник, на который я смотрел, считает, что lib / Blah.pm является необходимым файлом в любом пакете - у меня даже нет каталога lib /, не говоря уже о файлах .pm.

Существует ли стандартное решение для упаковки набора сценариев Perl вместе с некоторыми данными в каталоге share /?

1 Ответ

6 голосов
/ 20 января 2011

Дистрибутивам нет дела до модулей. Большинство инструментов настроено для обработки модулей по умолчанию, потому что это распространенный случай, но вы действительно можете распространять что угодно, если вы предоставляете логику, чтобы сообщать файлам сборки, что делать с любыми файлами, которые вы предоставляете.

ExtUtils :: Makemaker сложно использовать для такого рода вещей, но Module :: Build (несмотря на слово «Module») делает его намного проще. Однако вам нужно немного узнать о пользовательских классах Module :: Build, чтобы можно было переопределить поведение по умолчанию, которое вам не нужно.

Если вы говорите об автономных скриптах, вы можете посмотреть на мой scriptdist дистрибутив или Dr. Статья Доббса, которую я написал об этом . Он не будет обрабатывать часть share / для вас, но добавить его не сложно.

...