Редактирование: Репозиторий СПО

Перейти к: навигация, поиск

Внимание: Вы работаете как анонимный пользователь. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 323: Строка 323:
 
* обеспечивать приемлемый уровень производительности.  
 
* обеспечивать приемлемый уровень производительности.  
  
Для решения перечисленных задач участниками ALT Linux Team было разработано программное средство hasher<ref name="ftn26">''Hasher: технология безопасной и воспроизводимой сборки пакетов. [[Hasher|http://www.altlinux.org/Hasher]]''</ref>, ''которое базируется на принципе создания новой сборочной среды для каждой сборки.  
+
Для решения перечисленных задач участниками ALT Linux Team было разработано программное средство hasher<ref name="ftn26">''Hasher: технология безопасной и воспроизводимой сборки пакетов. http://www.altlinux.org/Hasher''</ref>, ''которое базируется на принципе создания новой сборочной среды для каждой сборки.  
  
 
В основе архитектуры hasher'а лежит трёхпользовательская модель: вызывающий непривилегированный пользователь (''C'') и два непривилегированных вспомогательных псевдопользователя; первый (''R'') играет роль root в порождаемой сборочной среде, второй (''U'') - обычного пользователя, собирающего программы.  
 
В основе архитектуры hasher'а лежит трёхпользовательская модель: вызывающий непривилегированный пользователь (''C'') и два непривилегированных вспомогательных псевдопользователя; первый (''R'') играет роль root в порождаемой сборочной среде, второй (''U'') - обычного пользователя, собирающего программы.  
Строка 351: Строка 351:
 
Для того, чтобы из произвольно устроенного git-репозитория можно было бы собирать пакеты, необходим инструмент, с помощью которого коммит, предназначенный для сборки, экспортировался бы из git-репозитория и преобразовывался к виду, пригодному для сборки. Для того, чтобы этот инструмент был бы удобен в использовании, правила такого преобразования должны быть достаточно простыми, а для того, чтобы это преобразование было безопасным, необходимо исключить использование инструментальных средств (таких как rpm-build), исполняющих произвольный код,
 
Для того, чтобы из произвольно устроенного git-репозитория можно было бы собирать пакеты, необходим инструмент, с помощью которого коммит, предназначенный для сборки, экспортировался бы из git-репозитория и преобразовывался к виду, пригодному для сборки. Для того, чтобы этот инструмент был бы удобен в использовании, правила такого преобразования должны быть достаточно простыми, а для того, чтобы это преобразование было безопасным, необходимо исключить использование инструментальных средств (таких как rpm-build), исполняющих произвольный код,
  
Решением этой задачи стал разработанный участниками ALT Linux Team набор инструментов gear<ref name="ftn27">'''Gear: '''инструмент для хранения, поддержки и сборки пакетов в <tt>git</tt>-репозиториях. [[Gear|http://www.altlinux.org/Gear]]</ref> для управления git-репозиториями исходного кода''.'' Основная идея, заложенная в gear, заключается в том, чтобы с помощью одного файла с простыми правилами экспорта коммитов (для обработки которых достаточно sed и git) можно было бы безопасно собирать пакеты из произвольно устроенного git-репозитория, по аналогии с hasher, который был задуман как средство безопасно собирать бинарные пакеты из произвольных исходных пакетов.
+
Решением этой задачи стал разработанный участниками ALT Linux Team набор инструментов gear<ref name="ftn27">'''Gear: '''инструмент для хранения, поддержки и сборки пакетов в <tt>git</tt>-репозиториях. http://www.altlinux.org/Gear</ref> для управления git-репозиториями исходного кода''.'' Основная идея, заложенная в gear, заключается в том, чтобы с помощью одного файла с простыми правилами экспорта коммитов (для обработки которых достаточно sed и git) можно было бы безопасно собирать пакеты из произвольно устроенного git-репозитория, по аналогии с hasher, который был задуман как средство безопасно собирать бинарные пакеты из произвольных исходных пакетов.
  
 
Инструментарий gear реализует такие возможности, как
 
Инструментарий gear реализует такие возможности, как
Строка 383: Строка 383:
 
<center>'''Хостинг git-репозиториев.'''</center>
 
<center>'''Хостинг git-репозиториев.'''</center>
  
Система хостинга git-репозиториев girar<ref name="ftn29">Girar: система хостинга git-репозиториев, [[Girar|http://www.altlinux.org/Girar]]</ref> первоначально была разработана для упрощения совместной разработки в рамках ALT Linux Team. Сейчас эта система решает следующие задачи:
+
Система хостинга git-репозиториев girar<ref name="ftn29">Girar: система хостинга git-репозиториев, http://www.altlinux.org/Girar</ref> первоначально была разработана для упрощения совместной разработки в рамках ALT Linux Team. Сейчас эта система решает следующие задачи:
  
 
* Управление git-репозиториями разработчиков. Каждый разработчик имеет собственные копии git-репозиториев, над которыми он работает и в которые только он может вносить изменения.
 
* Управление git-репозиториями разработчиков. Каждый разработчик имеет собственные копии git-репозиториев, над которыми он работает и в которые только он может вносить изменения.
* Управление системой email-оповещений об изменениях в git-репозиториях, которая упрощает обмен изменениями. Каждый разработчик может выбрать для мониторинга интересующие его события в интересующих его git-репозиториях[[Git.alt/Справочник#email|http://www.altlinux.org/Git.alt/Справочник#email]]. При этом фактический обмен и аккумуляция изменений осуществляется средствами распределенной системы контроля версий <tt>git.</tt>
+
* Управление системой email-оповещений об изменениях в git-репозиториях, которая упрощает обмен изменениями. Каждый разработчик может выбрать для мониторинга интересующие его события в интересующих его git-репозиториях[http://www.altlinux.org/Git.alt/Справочник#email .] При этом фактический обмен и аккумуляция изменений осуществляется средствами распределенной системы контроля версий <tt>git.</tt>
* Управление сборкой пакетов в [[Branches|репозитории пакетов]] из [[Gear|gear]]-репозиториев и SRPM-пакетов. Для сборки пакетов используется механизм заданий: пользователь указывает, какие [[Gear|gear]]-репозитории и SRPM-пакеты необходимо собрать одной транзакцией, создавая задание, после чего запускает его на выполнение. Каждое задание предназначено для изменения только одного репозитория пакетов. Задание обрабатываются сборочной системой girar-builder асинхронно. По завершению обработки задания пользователю приходит отчет по email, а результат обработки публикуется. Задания, по какой-либо причине забракованные сборочной системой, переводятся в отложенный режим, после чего они могут быть доработаны и отправлены на повторную сборку.
+
* Управление сборкой пакетов в [http://www.altlinux.org/Branches репозитории пакетов] из [http://www.altlinux.org/Gear gear]-репозиториев и SRPM-пакетов. Для сборки пакетов используется механизм заданий: пользователь указывает, какие [http://www.altlinux.org/Gear gear]-репозитории и SRPM-пакеты необходимо собрать одной транзакцией, создавая задание, после чего запускает его на выполнение. Каждое задание предназначено для изменения только одного репозитория пакетов. Задание обрабатываются сборочной системой girar-builder асинхронно. По завершению обработки задания пользователю приходит отчет по email, а результат обработки публикуется. Задания, по какой-либо причине забракованные сборочной системой, переводятся в отложенный режим, после чего они могут быть доработаны и отправлены на повторную сборку.
 
* Управление правами доступа к сборке пакетов в репозитории пакетов. Несмотря на то, что любой разработчик может внести изменения в исходный код любого пакета и отправить его на сборку, отправить собранный пакет в указанный репозиторий пакетов могут только те разработчики, за которыми закреплен этот пакет в этом репозитории.
 
* Управление правами доступа к сборке пакетов в репозитории пакетов. Несмотря на то, что любой разработчик может внести изменения в исходный код любого пакета и отправить его на сборку, отправить собранный пакет в указанный репозиторий пакетов могут только те разработчики, за которыми закреплен этот пакет в этом репозитории.
 
* Публикация git-репозиториев. Разработчикам предоставляется доступ на чтение к git-репозиториям по протоколу ssh. Публичный доступ на чтение к git-репозиториям предоставляется по протоколам git, http, ftp и rsync. Авторизованным пользователям предоставляется доступ на чтение к git-репозиториям ограниченного доступа. Кроме того, с помощью gitweb реализован web-интерфейс просмотра git-репозиториев.
 
* Публикация git-репозиториев. Разработчикам предоставляется доступ на чтение к git-репозиториям по протоколу ssh. Публичный доступ на чтение к git-репозиториям предоставляется по протоколам git, http, ftp и rsync. Авторизованным пользователям предоставляется доступ на чтение к git-репозиториям ограниченного доступа. Кроме того, с помощью gitweb реализован web-интерфейс просмотра git-репозиториев.
Строка 458: Строка 458:
 
<center>'''Сборочная система.'''</center>
 
<center>'''Сборочная система.'''</center>
  
Cборочная система '''Girar-builder''', интегрированная c системой хранения girar. первоначально была разработана для обслуживания репозитория Sisyphus. Эта система построена по принципу автоматической обработки заданий-транзакций на обновление пакетов в репозитории пакетов. Когда новая сборка пакета окончательно подготовлена, разработчик делает в gear-репозитории подписанный тэг (или подписывает SRPM-пакет) и с помощью girar создает задание на сборку пакета. Если задание было обработано успешно, то собранные пакеты помещаются в репозиторий пакетов, а gear-репозиторий с новым тэгом [[Git.alt/Справочник#gears|публикуется]] в каталоге кэширующих gear-репозиториев /gears/ (в случае сборки SRPM-пакета – в каталоге /srpms/). Названия кэширующих gear-репозиториев в этих каталогах совпадают с именами SRPM-пакетов (это требование не является обязательным для gear-репозиториев разработчиков). Таким образом, каталоги кэширующих gear-репозиториев /gears/ и /srpms/ предоставляют доступ к официально опубликованным gear-репозиториям, содержимое которых соответствует фактическим сборкам пакетов.
+
Cборочная система '''Girar-builder''', интегрированная c системой хранения girar. первоначально была разработана для обслуживания репозитория Sisyphus. Эта система построена по принципу автоматической обработки заданий-транзакций на обновление пакетов в репозитории пакетов. Когда новая сборка пакета окончательно подготовлена, разработчик делает в gear-репозитории подписанный тэг (или подписывает SRPM-пакет) и с помощью girar создает задание на сборку пакета. Если задание было обработано успешно, то собранные пакеты помещаются в репозиторий пакетов, а gear-репозиторий с новым тэгом [http://www.altlinux.org/Git.alt/Справочник#gears публикуется] в каталоге кэширующих gear-репозиториев /gears/ (в случае сборки SRPM-пакета – в каталоге /srpms/). Названия кэширующих gear-репозиториев в этих каталогах совпадают с именами SRPM-пакетов (это требование не является обязательным для gear-репозиториев разработчиков). Таким образом, каталоги кэширующих gear-репозиториев /gears/ и /srpms/ предоставляют доступ к официально опубликованным gear-репозиториям, содержимое которых соответствует фактическим сборкам пакетов.
  
 
Каждое задание состоит из одного или нескольких gear-репозиториев (и тэгов к ним) и/или SRPM-пакетов, отправленных на сборку. Сборочная система сначала осуществляет первичную сборку пакетов. Если при первичной сборке пакетов возникли грубые ошибки, то задание автоматически отменяется. В противном случае, если все пакеты в задании успешно собрались, то открывается транзакция: генерируется временный репозиторий, в котором выполняется ряд проверок (вычисляются характеристики нового репозитория). По умолчанию переход в новое состояние разрешён, только если характеристики репозитория не ухудшились. Если же собранные пакеты ухудшают характеристики репозитория, то составляется список нарушений, и задание переводится в отложенный режим.
 
Каждое задание состоит из одного или нескольких gear-репозиториев (и тэгов к ним) и/или SRPM-пакетов, отправленных на сборку. Сборочная система сначала осуществляет первичную сборку пакетов. Если при первичной сборке пакетов возникли грубые ошибки, то задание автоматически отменяется. В противном случае, если все пакеты в задании успешно собрались, то открывается транзакция: генерируется временный репозиторий, в котором выполняется ряд проверок (вычисляются характеристики нового репозитория). По умолчанию переход в новое состояние разрешён, только если характеристики репозитория не ухудшились. Если же собранные пакеты ухудшают характеристики репозитория, то составляется список нарушений, и задание переводится в отложенный режим.

Обратите внимание, что все добавления и изменения текста статьи рассматриваются, как выпущенные на условиях лицензии CC-BY-SA-3.0.

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Вики-разметка
Заголовки: 1-го: == ==, 2-го: === ===, 3-го: ==== ==== уровня.
Быстрая вставка: «» | [[]] [[|]] {{}} {{|}} [[Категория:]] [[altbug:]] <source lang=""></source> <pre></pre> <!-- -->.
Определения: {{man|}} {{lists|}} {{cmd|}} {{path|}} {{prg|}} {{pkg|}} {{term|}} {{span||}} {{altbug|}}
Выделение: ''italics'', '''bold''', <tt>моноширинный</tt>, <code>код</code>.
Списки: * ненумерованный список, ** вложенный список, # нумерованный список, ## вложенный нумерованный список, *# вложенный смешанный список, ;список :определений.
Verbatim: Пробел в начале строки или <pre>Явный тэг</pre>
Ссылки: [http://www.altlinux.ru/ внешние], [[Main Page|внутренние]], [http://altlinux.ru], [[Main Page]]
Шаблоны: {{Crap}} {{D}} {{Policy}} {{DraftPolicy}} {{Merge|}} {{Улучшение}} {{Тимовец|}}