Сборочный сервер: механизм работы — различия между версиями
Juliette (обсуждение | вклад) |
D uragan (обсуждение | вклад) (→Примечания) |
||
(не показано 17 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
− | + | [[Категория:Сборочная среда ABF]] | |
− | + | == Компоненты == | |
− | + | ||
− | == | + | |
− | + | ||
Сборочная система состоит из следующих компонентов: | Сборочная система состоит из следующих компонентов: | ||
* Система сборки (Build core) — компонент, отвечающий непосредственно за сборку пакетов из исходных кодов. Он реализован в виде клиент-серверного приложения; | * Система сборки (Build core) — компонент, отвечающий непосредственно за сборку пакетов из исходных кодов. Он реализован в виде клиент-серверного приложения; | ||
− | *Система хранения исходных кодов(СХИК) — специализированная системы контроля версий на основе Git | + | *Система хранения исходных кодов(СХИК) — специализированная системы контроля версий на основе Git <ref>Git — распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux.</ref>. Обеспечивает версионное хранение исходных кодов пакетов. Также это централизованное место для работы над кодом группы разработчиков; |
* Система сборки дистрибутива — компонент, отвечающий за сборку и выпуск продукта. В общем случае это iso-образ дистрибутива; | * Система сборки дистрибутива — компонент, отвечающий за сборку и выпуск продукта. В общем случае это iso-образ дистрибутива; | ||
* Веб-интерфейс — интерфейс между пользователем и сборочной системой. Представляет доступ ко всем основным функциям системы, а так же ряду дополнительных сервисов. | * Веб-интерфейс — интерфейс между пользователем и сборочной системой. Представляет доступ ко всем основным функциям системы, а так же ряду дополнительных сервисов. | ||
− | + | == Технологический процесс == | |
− | Технологический процесс работы сборочной системы на участке: ''Пользователь — Система хранения исходных кодов — Система сборки'' показан на рисунке 2.1.1 | + | Технологический процесс работы сборочной системы на участке: ''Пользователь — Система хранения исходных кодов — Система сборки'' показан на рисунке 2.1.1:<br/> |
− | [[File:Intro 2.1.1.png|frame|Рисунок 2.1.1 “Технологический процесс на участке ''Пользователь — Система хранения исходных кодов — Система сборки''”]] | + | [[File:Intro 2.1.1.png|frame|none|Рисунок 2.1.1 “Технологический процесс на участке ''Пользователь — Система хранения исходных кодов — Система сборки''”]]<br/> |
− | |||
− | |||
− | |||
− | |||
− | + | Технологический процесс работы сборочной системы на участке: ''Система сборки — Репозиторий'' показан на рисунке 2.1.2: | |
− | |||
− | |||
+ | [[File:Intro 2.1.2.png|frame|none|Рисунок 2.1.2 “Технологический процесс на участке ''Система сборки — Репозиторий''” ]] | ||
− | Рисунок 2.1.3 “Технологический процесс на участке Репозиторий — Система сборки дистрибутива — | + | |
+ | |||
+ | |||
+ | Технологический процесс работы сборочной системы на участке ''Система сборки - Репозиторий'' (Диаграмма 3): | ||
+ | [[File:Intro 2.1.3.png|frame|none|Рисунок 2.1.3 “Технологический процесс на участке ''Репозиторий — Система сборки дистрибутива — Дистрибутив''”]] | ||
+ | |||
Обозначения для диаграмм: | Обозначения для диаграмм: | ||
− | |||
− | |||
− | |||
− | + | [[File:Diagramm.png|frame|none|]] | |
+ | В данных диаграммах процесс показан в общем, множество деталей опущено. Их цель — дать представление о работе сборочной системы. | ||
− | Новый пакет из внешнего источника загружается в систему с помощью веб-интерфейса или через гит; | + | == Операции с пакетами == |
− | Следующий шаг — сборка пакета; | + | Основным элементом потока данных, с котором происходит работа, является пакет<ref>Пакет — файл‐архив, предназначенный для установки с помощью системы управления пакетами</ref><br/> |
− | Собранный пакет публикуется в репозитории. | + | Последовательность операций над новым пакетом на рисунке 2.1.1: |
+ | #Новый пакет из внешнего источника загружается в систему с помощью веб-интерфейса или через гит; | ||
+ | #Следующий шаг — сборка пакета; | ||
+ | #Собранный пакет публикуется в репозитории. | ||
− | Процесс сборки пакета представляет собой следующие шаги (отображен на рисунке 2.1.2): | + | '''Процесс сборки пакета представляет собой следующие шаги''' (отображен на рисунке 2.1.2): |
− | Создание специального окружения для безопасной и независимой от окружения сборки; | + | *Создание специального окружения для безопасной и независимой от окружения сборки; |
− | Компиляция исходных кодов под определенную архитектуру(если требуется); | + | *Компиляция исходных кодов под определенную архитектуру(если требуется); |
− | Размещение файлов проекта согласно требованиям по расположению файлов в дистрибутиве | + | *Размещение файлов проекта согласно требованиям по расположению файлов в дистрибутиве |
− | Запись контрольных сумм файлов; | + | *Запись контрольных сумм файлов; |
− | Архивирование результата. | + | *Архивирование результата. |
− | Добавление файлов в репозиторий: | + | '''Добавление файлов в репозиторий:''' |
− | перемещение пакета в нужную директорию; | + | *перемещение пакета в нужную директорию; |
− | обновление файлов-индексов о содержащихся в репозитории пакетах. | + | *обновление файлов-индексов о содержащихся в репозитории пакетах. |
Главное требование - непротиворечивость данных. Так в репозиторий может прийти сразу несколько обновлений, организуется очередь. В противном случае возможно получить ситуацию, называемой брошенной зависимостью (“broken depends”), когда установка части пакетов не будет возможна, так как они зависят от пакетов, которых нет в репозитории. | Главное требование - непротиворечивость данных. Так в репозиторий может прийти сразу несколько обновлений, организуется очередь. В противном случае возможно получить ситуацию, называемой брошенной зависимостью (“broken depends”), когда установка части пакетов не будет возможна, так как они зависят от пакетов, которых нет в репозитории. | ||
− | + | == Процесс сборки дистрибутива == | |
− | Создание безопасного окружения; | + | |
− | Формирование списка пакетов и их загрузка; | + | '''Процесс сборки дистрибутива''' (представленный на рисунке 2.1.3): |
− | Установка базовой система; | + | *Создание безопасного окружения; |
− | Установка специфичных пакетов; | + | *Формирование списка пакетов и их загрузка; |
− | Первичная конфигурация; | + | *Установка базовой система; |
− | Копирование файлов в заданные директории; | + | *Установка специфичных пакетов; |
− | Упаковка сформированной системы; | + | *Первичная конфигурация; |
− | Формирование инициализатора для загрузки системы; | + | *Копирование файлов в заданные директории; |
− | Формирование локального репозитория; | + | *Упаковка сформированной системы; |
− | Создание загрузочного iso-образа | + | *Формирование инициализатора для загрузки системы; |
− | Выкладка iso-образов на сервер для загрузки. | + | *Формирование локального репозитория; |
+ | *Создание загрузочного iso-образа<ref>ISO-образ — неформальный термин для обозначения образа оптического диска, содержащего файловую систему стандарта ISO 9660</ref> системы и дополнительных образов в случае необходимости; | ||
+ | *Выкладка iso-образов на сервер для загрузки. | ||
+ | |||
+ | == Примечания == | ||
+ | {{Примечание|<references />}} | ||
+ | |||
+ | {{Навигационная полоса|Документация по теме «Сборочная среда ABF»|[[Сборочная среда ABF]] • [[Краткое руководство по работе в сборочной среде ABF]] • [[ABF: Руководство пользователя]] • [[ABF: Руководство администратора]]}} | ||
− | + | [[en:Build_server_structure_and_workflow]] |
Текущая версия на 14:57, 3 марта 2014
Содержание
Компоненты
Сборочная система состоит из следующих компонентов:
- Система сборки (Build core) — компонент, отвечающий непосредственно за сборку пакетов из исходных кодов. Он реализован в виде клиент-серверного приложения;
- Система хранения исходных кодов(СХИК) — специализированная системы контроля версий на основе Git [1]. Обеспечивает версионное хранение исходных кодов пакетов. Также это централизованное место для работы над кодом группы разработчиков;
- Система сборки дистрибутива — компонент, отвечающий за сборку и выпуск продукта. В общем случае это iso-образ дистрибутива;
- Веб-интерфейс — интерфейс между пользователем и сборочной системой. Представляет доступ ко всем основным функциям системы, а так же ряду дополнительных сервисов.
Технологический процесс
Технологический процесс работы сборочной системы на участке: Пользователь — Система хранения исходных кодов — Система сборки показан на рисунке 2.1.1:
Технологический процесс работы сборочной системы на участке: Система сборки — Репозиторий показан на рисунке 2.1.2:
Технологический процесс работы сборочной системы на участке Система сборки - Репозиторий (Диаграмма 3):
Обозначения для диаграмм:
В данных диаграммах процесс показан в общем, множество деталей опущено. Их цель — дать представление о работе сборочной системы.
Операции с пакетами
Основным элементом потока данных, с котором происходит работа, является пакет[2]
Последовательность операций над новым пакетом на рисунке 2.1.1:
- Новый пакет из внешнего источника загружается в систему с помощью веб-интерфейса или через гит;
- Следующий шаг — сборка пакета;
- Собранный пакет публикуется в репозитории.
Процесс сборки пакета представляет собой следующие шаги (отображен на рисунке 2.1.2):
- Создание специального окружения для безопасной и независимой от окружения сборки;
- Компиляция исходных кодов под определенную архитектуру(если требуется);
- Размещение файлов проекта согласно требованиям по расположению файлов в дистрибутиве
- Запись контрольных сумм файлов;
- Архивирование результата.
Добавление файлов в репозиторий:
- перемещение пакета в нужную директорию;
- обновление файлов-индексов о содержащихся в репозитории пакетах.
Главное требование - непротиворечивость данных. Так в репозиторий может прийти сразу несколько обновлений, организуется очередь. В противном случае возможно получить ситуацию, называемой брошенной зависимостью (“broken depends”), когда установка части пакетов не будет возможна, так как они зависят от пакетов, которых нет в репозитории.
Процесс сборки дистрибутива
Процесс сборки дистрибутива (представленный на рисунке 2.1.3):
- Создание безопасного окружения;
- Формирование списка пакетов и их загрузка;
- Установка базовой система;
- Установка специфичных пакетов;
- Первичная конфигурация;
- Копирование файлов в заданные директории;
- Упаковка сформированной системы;
- Формирование инициализатора для загрузки системы;
- Формирование локального репозитория;
- Создание загрузочного iso-образа[3] системы и дополнительных образов в случае необходимости;
- Выкладка iso-образов на сервер для загрузки.
Примечания
- ↑ Git — распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux.
- ↑ Пакет — файл‐архив, предназначенный для установки с помощью системы управления пакетами
- ↑ ISO-образ — неформальный термин для обозначения образа оптического диска, содержащего файловую систему стандарта ISO 9660