📦 Сопровождение и выпуск обновлений
🎯 Цель раздела
После изучения этого раздела вы:
- поймёте, как поддерживать пакеты в актуальном состоянии;
- научитесь правильно оформлять changelog и релизы;
- освоите цикл жизни пакета в ROSA Linux;
- узнаете, как обеспечивается долгосрочная поддержка (LTS).
🧩 Жизненный цикл пакета
Путь любого пакета в ROSA Linux выглядит так:
Исходники → SPEC → SRPM → ABF Build → Repo → User → Update
Основные стадии:
- Создание пакета — разработка и первая публикация;
- Сопровождение — обновления версий, патчи, улучшения;
- Тестирование и ревью — проверка стабильности перед выпуском;
- Публикация в репозиторий — после успешной сборки на ABF;
- Поддержка и обновления — исправления уязвимостей, совместимость;
- EOL (End of Life) — окончание поддержки и архивация пакета.
🧱 Репозитории ROSA Linux
ROSA имеет несколько уровней репозиториев:
| Репозиторий | Назначение |
|---|---|
| main | Основные стабильные пакеты |
| contrib | Пакеты от сообщества |
| updates | Обновления и исправления |
| testing | Тестовые версии перед выпуском |
| backports | Новые версии для старых веток ROSA |
| restricted | Проприетарное или ограниченное ПО |
💡 Новые версии пакетов сначала загружаются в
testing, затем — после ревью и тестов — попадают вupdatesилиmain.
🧾 Правила обновления пакетов
- Повышайте
Release, если меняется SPEC, патч или скрипт. - Повышайте
Version, если обновляется исходный код. - В changelog всегда указывайте причину обновления.
Пример:
%changelog
* Mon Nov 3 2025 Sergey Braumann <sergeybraumann@gmail.com> 1.2-3
- Rebuild for updated glibc
- Minor spec cleanup
⚠️ Никогда не обновляйте пакет без изменения changelog — это обязательный элемент истории сопровождения.
⚙️ Проверка и тестирование обновлений
Перед публикацией обновлений необходимо проверить:
- Успешность сборки через
rpmbuildилиmock; - Отсутствие ошибок
rpmlint; - Корректную установку и удаление пакета;
- Работоспособность функционала после обновления.
Пример проверки:
sudo dnf upgrade ./RPMS/x86_64/hello-1.2-3.x86_64.rpm
Проверка отката:
sudo dnf downgrade hello
🧩 Публикация обновлений через ABF
После сборки и проверки загрузите SRPM в Automated Build Farm (ABF):
abf build start hello.spec --branch update-1.2
После успешного билда:
- Пакет попадает в
testing; - После ревью и тестов — в
updates; - Финально — в стабильный репозиторий.
💡 Каждый билд в ABF имеет статус:
pending → building → succeeded → published.
🔒 Поддержка и безопасность
Инженеры сопровождения отвечают за:
- устранение уязвимостей (CVE);
- обновления зависимостей без нарушения совместимости;
- отслеживание изменений в upstream-проектах.
Инструменты:
dnf updateinfo
dnf updateinfo list cves
🛡️ Безопасность и своевременные исправления — ключевой аспект доверия пользователей к дистрибутиву.
🧠 Работа с LTS и EOL
ROSA поддерживает долгосрочные релизы (LTS) в течение нескольких лет. Пакеты в таких ветках:
- обновляются только для исправления ошибок и уязвимостей;
- не получают новых функций, чтобы сохранить стабильность;
- архивируются после завершения поддержки (EOL).
Проверка состояния релиза
На странице пакета в ABF указывается:
Supported until: 2028-05-01
Status: Active / Frozen / EOL
🔄 Ведение changelog
Каждая запись должна содержать:
- дату (в формате
%a %b %d %Y); - имя и email сопровождающего;
- версию и релиз;
- краткое описание изменений.
Пример:
* Tue Nov 4 2025 Sergey Braumann <sergeybraumann@gmail.com> 1.2-4
- Security fix for CVE-2025-1045
- Updated documentation
💬 Для пакетов ROSA changelog обязателен — это не только журнал изменений, но и доказательство сопровождения.
📊 Мониторинг пакетов
Используйте инструменты ABF и CLI для анализа активности:
abf build list --package hello
abf build info 98765
На сайте ABF доступна статистика:
- дата последней сборки;
- автор изменений;
- лог сборки;
- список публикаций.
🧠 Мини-тест для самопроверки
| Вопрос | Ответ |
|---|---|
| Что означает EOL? | Конец жизненного цикла пакета (End of Life) |
| Где публикуются стабильные обновления? | В репозитории updates |
| Что нужно сделать перед обновлением пакета? | Проверить сборку, зависимости и changelog |
Что означает Release: 3%{?dist}? | Третий выпуск сборки текущей версии |
| Где ведётся changelog? | В конце SPEC-файла |
🧭 Итого
Теперь вы:
- понимаете, как сопровождаются пакеты в ROSA Linux;
- умеете обновлять версии и публиковать их через ABF;
- знаете, как работает система репозиториев и LTS-поддержка;
- готовы перейти к последнему этапу — продвинутым темам, таким как пакетирование Python, Go, Rust и сборка ядра.
Следующий документ — “Продвинутые темы пакетирования”, где мы рассмотрим особенности сборки нетривиальных пакетов и работу с современными языками.