Как мне улучшить процесс развертывания моего Perl-приложения?

Я разрабатываю и поддерживаю набор биоинформатических приложений из более чем 50 скриптов, и процесс его развертывания представляет собой беспорядок:

  • Весь набор находится в одном большом репозитории git. Он имеет множество зависимостей от CPAN, а также десятки внутренних модулей.
  • Платформа разработки — Linux.
  • Платформы развертывания: Windows (20+ пользователей), Mac (10+), Linux (2-3). Большинство из них не являются «опытными пользователями».
  • Для Windows у меня есть один установщик (созданный с помощью NSIS) для клубники perl + необходимые модули (т.е. я установил клубнику на Windows, установил все модули и заархивировал c:\strawberry), и еще один установщик для комплекта- - Я сделал это, т.к. набор обновляется намного больше, чем список необходимых модулей.
  • Для Mac я поставил perl 5.14, все необходимые модули cpan и набор приложений в установщике, запускаемом двойным щелчком мыши. Я не использую системный Perl, потому что он устарел. Я связываю все вместе, в отличие от Windows, потому что у меня полный отстой на Mac.
  • Что касается Linux, я устанавливаю их вручную, поскольку их всего несколько, и они используют разные дистрибутивы.

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

Но я не уверен, какой подход для этого лучше всего, т.к. мне все равно нужно было бы распространять сам perl, пришлось бы писать какой-то некомандный интерфейс для CPAN, контролировать точные версии Модули CPAN сторонних производителей, укажите его по умолчанию на мой «DarkPan», где я буду хранить наши модули, как я буду загружать обновления и т. д. и т. д.

Я не думаю, что смогу использовать PerlApp или Par, так как они объединение отдельных сценариев, а не всего их набора.

Приветствую любые советы.

11
задан user1481 5 March 2012 в 23:48
поделиться