Задать вопрос
@sevmax

Как оптимизировать добавление perl модулей?

Сейчас имеется список из нескольких десятков perl модулей, которые запускаются при добавление нового сервера в облако.
Инсталляция этих модулей занимает продолжительное время — несколько часов.

1. Подскажите, есть ли какие-либо пути ускорения добавления новых модулей?

2. Как я понял, пред-скомпилированных модулей нет, как это есть в PHP. Так ли это?

3. Насколько корректно использование следующей команды для автоматизации инсталляции echo «y» | cpan -i Net::SMTP?

Спасибо.
  • Вопрос задан
  • 2464 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Bambr
@Bambr
1) встречаются «виртуальные модули», которые ничего не делают, кроме как тянут за собой пачку зависимостей. Но довольно редко встречается.
2) самый правильный способ упростить добавление модулей на однотипные машины — сборка пакетов в привычном для вашей системы формате. Для centos || fedora поищите гуглом perl2rpm, cpan2rpm. Соберете свой набор пакетов для модулей, которые отсутствуют в репозиториях.
2.1) На всякий случай добавлю, что пакеты с перловыми модулями обычно имеют имя типа perl-*.rpm, где вместо звездочки нужно подставить имя пакета с span. Например, нужен модуль, URI::Escape. Ищем на search.cpan.org, находим его в пакете «URI-1.55». Значит, пробуем поискать уже собранный пакет perl-URI, если не находим — собираем сами.
3. Еще раз повторюсь, используйте пакеты. Во-первых, будет проще отслеживать версии модулей и апгрейдить их при необходимости синхронно. Во-вторых, вы не столкнетесь с тем, что за время с последней установки модулей на cpan появились новые версии. Это может привести к довольно интересным эффектам. Например, Storable проверяет при распаковке данных, какой версией они были сериализованы, и при несовпадении пошлет довольно далеко.

Успехов!
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
iscsi
@iscsi
Установить в chroot нужные модули, сделать mtree, копировать уже готовые модули.
Так Вы убьете двух зайцев — обновлять модули нужно будет в одном месте (дальше надо будет просто скопировать на все машины облака),
добьетесь унификации.
Ответ написан
@pwlnw
Переходите на «богатый на пакеты» дистрибутив типа ubuntu.
Просто так все подряд модули из CPAN там не собирают, но если прикладные программы требуют модули, то их обычно пакуют в пакеты.
Ставится очень быстро.
При некоторой сноровке вы можете сами изготовить пакеты и устроить небольшой репозитарий.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы