- PVSM.RU - https://www.pvsm.ru -
Доброго времени суток уважаемые пользователи ! Хотелось бы с вами поделиться своими переживаниями по поводу одного проекта и передать его в добрые руки.
Несколько лет занимаясь сборкой RPM пакетов для CentOS и ведя свой общедоступный репозиторий пакетов CentALT [1], я постоянно сталкивался с одной и той же проблемой. Многие пользователи просили включать в сборку пакет с взаимоисключающими опциями, аргументация могла быть различной, но факт имел место быть.
Рассуждая на данную тему, я пришел в выводу, что решить ее в пределах одного репозитория не представляется возможным, т.е. каждому из пользователей необходимо предоставить возможность самостоятельного выбора опций сборки и на выходе получить готовый RPM пакет с нужными ему опциями и модулями.
Обсудив эту тему с комрадом Wendor [2], мы прикинули, что проект будет востребован и полезен людям. Обмозговав затею и прикинув техническую часть мы со словами «Г… о вопрос сделаем.» приступили к работе. Если говорить честно, то к работе приступил Wendor [2], а я все время мешал ему давая свои «ценные» советы.
В проект мы закладывали очень простую философию — «Собери свой репозиторий». Пользователь мог бы выбрать необходимые ему пакеты, с необходимыми ему модулями, а на выходе получить ссылку на готовый к употреблению репозиторий. При обновлении пакета, он бы автоматически пересобирался для всех репозиториев пользователей. В планах было добавление возможности запила собственного конфига в пакет. Мы с упоением представляли как будет удобно обновлять парк серверов прямо из репозитория.
Через два дня сервис был написан Антоном от и до (он хоть и тоже админ, но немного кодит). Для начала решили собирать пакет nginx, отладить на нем всю систему, а уже после начать добавлять другие. Поправив SRPMS пакет Nginx я внес в БД опции которые можно было выбирать при сборке. Вуаля — сервис заработал, на выходе мы получили RPM пакет под нужную ОС (CentOS5/CentOS 6) с нужными нам опциями сборки. Мы внесли в список опция порядка 50 сторонних модулей для Nginx и в 95% процентов случаев сборка проходила успешно. Оставшиеся 5% составляли случаи когда мы выбирали несовместимые друг с другом опции типа «отключить поддержку http» и например «поддержка gzip». В систему были внесены всевозможные форки и доработки Nginx такие и сейчас можно осуществлять сборку следующих пакетов:
Поигравшись со сборкой мы поняли, что вдвоем на голом энтузиазме волочить такой проект и развивать его нам не удастся. Проект забросили на пару месяцев «до лучших времен». Время текло, а воз и ныне там.
В конце концов мы решили, что проектом заниматься больше у нас не получится. Сегодня мы приняли решение отдать все наработки проекта в добрые руки.
Если найдутся люди желающие поддержать данное начинание, то мы с радостью объясним и покажем как развернуть им всю систему сборки с нуля и передадим все исходные коды.
Монетизация. Заинтересованный читатель скажет а «Где деньги Зин? (с)». Видятся простые и прозрачные схемы монетизации сервиса:
Ссылка на работающий сервис http://repobuild.com/ [5].
Для тех, кто не хочет регистрироваться:
username: user
password: user
Создаем репозиторий, добавляем пакеты, выбираем опции для сборки выбранных пакетов
Ждем пока пакет соберется и получаем ссылку на репозиторий
Если сборка неуспешна, то ищем где в опциях мы накосячили (к сожалению сейчас еще не все взаимоисключающие опции внесены в список).
Вот как-то так. Если есть желающие продолжить наше дело, просим вас откликнуться.
Автор: CentALT
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/44595
Ссылки в тексте:
[1] CentALT: http://centos.alt.ru
[2] Wendor: http://habrahabr.ru/users/wendor/
[3] https://github.com/alibaba/tengine: https://github.com/alibaba/tengine
[4] http://openresty.org/: http://openresty.org/
[5] http://repobuild.com/: http://repobuild.com/
[6] Источник: http://habrahabr.ru/post/195742/
Нажмите здесь для печати.