Что такое хороший способ развернуть приложение Perl? - PullRequest
9 голосов
/ 14 октября 2010

Я отправил этот вопрос ищу что-то похожее на Buildout для Perl. Я думаю Shipwright - это то, что я ищу, но я не совсем уверен. Я поэкспериментировал с ним, создал проект, импортировал все мои источники и зависимости, и я экспортировал все на судно, после чего документация просто прекратилась. Что мне делать с верфью? Я занимаюсь разработкой на судне, или я занимаюсь разработкой на верфи? Я предполагаю, что судно предназначено только для развертывания, но как мне на самом деле развернуть судно на веб-сервере (скажем, я использую Linux, Apache и просто работаю прямо с CGI).

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

РЕДАКТИРОВАТЬ: Вот основные моменты того, что я могу сделать с Buildout, что я хотел бы сделать в Perl.

С помощью Buildout в моей кодовой базе есть файл, в котором перечислены зависимости (для Perl это будут либо модули CPAN, либо другие исходные репозитории). Я могу запустить скрипт начальной загрузки, который будет извлекать все эти зависимости и помещать их в каталог в моем проекте и НЕ устанавливать их на системном уровне . Buildout также создает служебные сценарии, которые могут делать все что угодно (запускать тесты, другие инструменты командной строки, что угодно), и эти сценарии явно добавляют зависимости к пути, так что, когда мои сценарии выполняются, все мои зависимости доступны для импорта.

Что на самом деле очень хорошо, так это то, что он позволяет мне управлять своими зависимостями без необходимости устанавливать что-либо на системном уровне. Что делает переход с одной версии на другую очень простым. Кроме того, это позволяет мне запускать несколько проектов Buildout в одной системе, используя разные версии одного и того же модуля. Наконец, одно огромное преимущество заключается в том, что со структурой каталогов Buildout я могу просто передать зависимости в систему управления версиями и развернуть на новую машину. Мне просто нужно оформить заказ, и все мои зависимости уже выполнены без необходимости прикасаться к чему-либо установленному в системный уровень.

1 Ответ

3 голосов
/ 14 октября 2010

Не думаю, что в Perl вы найдете что-то похожее на Buildout, но вы могли бы собрать пару вещей, которые бы сработали.

Вы можете использовать стандартный скрипт Build.PL для Module :: Build для управления зависимостями и наличия команд для запуска тестов и т. Д.

Тогда вы можете использовать cpanminus для установки этих зависимостей в локальный (не системный) каталог.

Тогда вы сможете использовать Shipwright для объединения и развертывания проекта с этими теперь локальными зависимостями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...