UsesGear

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Wackowiki-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была автоматически перемещена с old.wiki.etersoft.ru.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Git + RPM = Gear

Gear-оводство

Отслеживание процесса создания RPM-пакетов всегда оставался за некоторой завесой. Результаты есть, а процесс не виден. Прошло немало времени с тех пор, как стали публиковаться SVN-репозитории различных дистрибутивов. Тем не менее воспользоваться этими репозиториями без возможности продолжить, пусть даже локально, работу над пакетом в собственной ветке, до повсеместного распространения распределённых систем контроля версий было нельзя. А это значит, что разработчик не вникает в процесс работы с помощью тех же средств, которыми пользовался исходный разработчик пакета. С введением Gear, представляющего собой Git-репозиторий, распакованного SRPM-пакета, это стало возможным.


Что представляет собой Gear? Gear-репозиторий - это Git-репозиторий, который который содержит SPEC-файл, файлы исходников (обычно распакованные) и правила получения из хранящихся в репозитории файлов, содержимого исходных файлов (SOURCES) для RPM. В этом плане есть идея кроме всего прочего хранить там дополнительно файлы для сборки под Debian/Ubuntu. И это не сложно. Сложнее научиться правильно интерпретировать эти файлы. Сейчас, кроме всего прочего, Gear представляет набор скриптов для получения сборочного дерева и запуска сборки в этом дереве с помощью Rpmbuild или Hasher. Для Debian таких средств по нет.


Для создания Gear-репозитоия проще всего воспользоваться скриптом gear-srpmimport, который автоматически создаст шаблон файла .gear/rules (чуть ранее это был файл .gear-rules), скопирует исходники, сделает первый коммит и первый таг. Далее для работы можно использовать стандартные команды gear --rpmbuild -- rpm -ba или gear --hasher - hsh /hasher_directory или команды из набора etersoft-build-utils - rpmbs file.spec и rpmbsh file.spec.



Разделяемый репозиторий

Для обеспечения работы разных пользователей с одним репозиторием нужно выполнить следующее:

  • Создать на сервере группу, в которую включить всех пользователей, имеющих доступ
  • Установить эту группу на каталог репозитория рекурсивно
  • Установить SGID бит на все каталоги репозитория на сервере
  • Дописать в repopsitory.git/config в секцию core параметры sharedRepository = umask, чтобы файлы создавались согласно umask, и filemode = true (контроль прав).
  • Если репозиторий большой, в секцию girar стоит дописать repack = false
  • проверить, что umask находится в значении 0002 (
    не работает
     !)



Ссылки