Packaging Automation/Преобразование Пакетов
Материал из ALT Linux Wiki
(Различия между версиями)
(→Введение.) |
м |
||
Строка 38: | Строка 38: | ||
* для каждого входящего аргумента | * для каждого входящего аргумента | ||
** READER возвращает объект преобразуемого пакета (класс {{pkg|RPM::Source::Editor}}). | ** READER возвращает объект преобразуемого пакета (класс {{pkg|RPM::Source::Editor}}). | ||
- | ** библиотека опрашивает объекты из контейнера фабрик преобразований, | + | ** библиотека опрашивает объекты из контейнера фабрик преобразований, которые в ответ генерируют и возвращают объекты преобразований. |
- | которые в ответ генерируют и возвращают объекты преобразований. | + | ** Библиотека создает объект шины обмена сообщений и передает объект преобразуемого пакета, контейнер ресурсов, шину обмена сообщений и набор объектов преобразований в текущий объект PLAYER. |
- | ** Библиотека создает объект шины обмена сообщений | + | ** PLAYER последовательно применяет к преобразуемому пакету каждый из объектов преобразований в порядке, отсортированными по приоритету, а с одинаковым приоритетом -- по порядку загрузки плагинов. |
- | и передает объект преобразуемого пакета, контейнер ресурсов, шину обмена сообщений и набор объектов преобразований в текущий объект PLAYER. | + | |
- | ** PLAYER последовательно применяет к преобразуемому пакету каждый из объектов преобразований | + | |
- | в порядке, отсортированными по приоритету, а с одинаковым приоритетом -- по порядку загрузки плагинов. | + | |
** WRITER сохраняет изменения. | ** WRITER сохраняет изменения. | ||
+ | Каждый плагин | ||
- | |||
buildroot2files | buildroot2files | ||
hashertarbuild | hashertarbuild | ||
srpmnmu | srpmnmu | ||
srpmtool | srpmtool |
Версия 12:49, 11 октября 2016
Содержание |
Введение.
В системах автоматизации за преобразование пакетов отвечают утилиты, использующие библиотеку RPM::Source::Transform (сейчас в пакете perl-RPM-Source-Editor).
Эту библиотеку можно расширять различными плагинами, с помощью которых можно решать следующие задачи:
- различные операции по редактированию пакета,
- автообновление пакета до следующей версии Gear/gear-uupdate, Gear/gear-cronbuild, cronbuild, croncopy, cronport
- импорт пакета в формате другого диалекта rpm (fedora, mageia, suse, pld, ...)
- импорт пакета в формате deb из Debian/Ubuntu (в планах).
Принципы работы библиотеки
В библиотеке имеется контейнер ресурсов, контейнер фабрик преобразований, и объекты, имеющие роли READER, PLAYER, WRITER.
Загружаемые плагины добавляют свои объекты в контейнер ресурсов и(ли) контейнер фабрик преобразований, и при необходимости переопределяют объекты для ролей READER, PLAYER, WRITER.
При запуске
- библиотека осуществляет инициализацию объектов из контейнера ресурсов,
контейнера фабрик преобразований, текущих READER, PLAYER, WRITER.
- для каждого входящего аргумента
- READER возвращает объект преобразуемого пакета (класс RPM::Source::Editor).
- библиотека опрашивает объекты из контейнера фабрик преобразований, которые в ответ генерируют и возвращают объекты преобразований.
- Библиотека создает объект шины обмена сообщений и передает объект преобразуемого пакета, контейнер ресурсов, шину обмена сообщений и набор объектов преобразований в текущий объект PLAYER.
- PLAYER последовательно применяет к преобразуемому пакету каждый из объектов преобразований в порядке, отсортированными по приоритету, а с одинаковым приоритетом -- по порядку загрузки плагинов.
- WRITER сохраняет изменения.
Каждый плагин
buildroot2files hashertarbuild srpmnmu srpmtool