Похоже, что большинство инсталляторов Perl сосредоточены на установке модулей Perl, а не приложений. Такие вещи, как ExtUtils:: MakeMaker и Module:: Build, очень хорошо подходят для модулей, но требуют дополнительной работы для веб-приложений.
В идеале было бы неплохо сделать следующее после проверки источника из репозитория:
- Обнаружены обнаруженные недостатки
- Загрузка и установка зависимостей от CPAN
- Запустите команду "Построить" источник в конечное состояние (выполните любой синтаксический анализ или конфигурацию, необходимые для локальной среды).
- Запустите команду для установки встроенных файлов в соответствующие местоположения. Не только модули perl, но также такие вещи, как файлы шаблонов (.tt) и скрипты CGI, JS и файлы изображений, которые должны быть доступны для веб-сайта.
- Убедитесь, что для установленных файлов заданы правильные разрешения (и, при необходимости, контекст SELinux).
Сейчас у нас есть система, основанная на Module:: Build, которая делает большую часть этого. Работа была выполнена моим коллегой, который в то время учился использовать Module:: Build, и мы хотели бы получить некоторые рекомендации по обобщению нашего решения, поскольку это довольно справедливо для приложения Теперь. В частности, наша система требует от нас устанавливать зависимости вручную (хотя и обнаруживает их).
Есть ли какая-то конкретная система, которая вы использовали, которая была особенно успешной? Вам нужно написать установщик на основе Module:: Build или ExtUtils:: MakeMaker, что особенно важно для вашего приложения, или что-то более общее доступно?
РЕДАКТИРОВАТЬ: Чтобы ответить на следующие вопросы Брайана:
- Мы можем войти в машины
- У нас нет доступа root к машинам
- Все машины (якобы) идентичные сборки RHEL5 с включенным SELinux.
- В настоящее время люди, устанавливающие компьютеры, являются только программистами из нашей группы, и наш источник недоступен для широкой публики. Однако, возможно, наш источник в конечном итоге может быть установлен на других машинах нашей организации, которые будут установлены их программистами или людьми системы.
- Мы устанавливаем, выбирая из репозитория, хотя мы хотели бы иметь возможность использовать распределенный архив (см. выше).