[Moscow.pm] Perl module as an RPM

thecrux на gmail.com thecrux на gmail.com
Ср Окт 31 01:24:13 PDT 2012


On Wed, Oct 31, 2012 at 10:46:17AM +0400, Evgeniy Kosov wrote:
> Привет.
> 
> Кто-нибудь пакует свою перловку в rpm? Поделитесь, плз, опытом.
> Внезапно возникла необходимость деплоиться на Linux. Хочется наладить 
> процесс с минимальным количеством своих велосипедов.
> 
> В перспективе должна получиться цепочку вида:
> 
>    VCS -> CI tool -> RPM
> 
> Спасибо.
> 
> ЗЫ: а что вы используете для continuous integration?

Попробую поделиться своим опытом.

IMHO, переход от cpanminus/perlbrew и прочего самосбора в $HOME и
/usr/local к использованию штатного для Linux менеджера пакетов
для развёртывания ПО является правильным направлением в случае
долгосрочной поддержки и администрирования системы. Что хорошо для
разработки бывает очень вредно в администрировании.

RPM/DEB, а также надстройки urpmi/apt над ними позволяют поддерживать
систему в консистентном состоянии, решая проблемы с зависимостями
различных компонентов, конфликтами, давая гарантии целостности и
безопасности.

Именно из этих соображений майнтейнеры дистрибутивов пакуют perl модули в
пакеты. На выходе получаем стабильный срез CPAN, в котором нет конфликтов
между модулями и есть большая вероятность, что они рабочие (особенно это
касается XS)

Когда возникает необходимость обновить какой-либо модуль или несколько
зависимых модулей, то сборка обновления в виде rpm/deb пакетов позволяет
вам штатным способом устанавливать/удалять, обновлять/даунгрейдить эти
модули на произвольном числе серверов и всегда получать гарантированный
результат. Системному администратору не нужно быть разработчиком, чтобы
развернуть такое обновление и запросто откатить его в случае проблем.

Что касается утилит, то в rpm-based дистрибутивах многие используют
cpan2rpm (http://search.cpan.org/dist/cpan2rpm/cpan2rpm) ,
в deb-based - dh-make-perl (http://search.cpan.org/dist/DhMakePerl/).
Иногда требуется допилить полученный спек или rules для нормального
результата.

Полноценный сервис для сборки из git (или других VCS), на сколько я знаю
есть у:
Fedora   - Koji (https://fedoraproject.org/wiki/Koji),
OpenSUSE - OBS (http://openbuildservice.org),
ALTLinux - Git.Alt  (http://www.altlinux.org/Git.alt)

Возможно (и наверняка) есть и другие. OBS позволяет собирать не только под
OpenSUSE и даже не только rpm.

Лично я использую ALTLinux и поэтому досконально знаю только последний из
списка. Для своих задач мне потребовалась система сборки alt rpm из git с
веб-интерфейсом, которая, как мне показалось, может быть полезна
общественности, поэтому экспериментальный сервис доступен для всех желающих
http://gear.truecrux.org (не сочтите за рекламу, просто эта тема для меня
крайне актуальная ;)

-- 
Vladimir Lettiev aka crux ✉ theCrux на gmail.com


Подробная информация о списке рассылки Moscow-pm