Atomic Booster: компаньон Atomic Niri

Настройка системы, обновления, смена каналов, установка приложений, капсулы и контейнеры в одном окне вместо десятка команд.

Atomic Booster: канал, текущая версия, откат и готовое обновление
Atomic Booster: готовое обновление, смена канала, текущая версия образа и откат на предыдущую.

Зачем он нужен

В неизменяемой системе привычное «поставил пакет и всё» работает иначе: система обновляется образом, графические программы живут во Flatpak, остальное в контейнерах и капсулах. Это надёжно, но команд много: bootc, apm, flatpak, podman, distrobox, capsule.

Atomic Booster собирает всё это в одно приложение. Он ничего не заменяет в системе: за каждой кнопкой те же самые штатные команды, а Booster лишь запускает их безопасно, показывает ход выполнения и результат.

Нативное приложение

Написан на Vala, GTK4 и libadwaita. Запускается мгновенно и выглядит как остальная система, это не оболочка из скриптов и не веб-страница.

Безопасно по устройству

Команды запускаются списком аргументов без shell, у каждой есть таймаут и корректная очистка. Привилегированные действия идут через polkit.

Связан с остальной системой

Мастер ReadySet и shell Niti обращаются к Booster по шине D-Bus, а виджет обновлений в панели открывает его.

Что есть в окне

Atomic Niri: обновления, каналы и откат

Главная вкладка. На ней видно, какая система сейчас работает и что можно сделать.

Что показывает

  • Канал: из какой ветки образа вы получаете обновления (stable, latest, long и другие). Подробнее на странице «Ветки».
  • Текущая версия образа и пакетная база (Sisyphus и дата).
  • Доступен новый образ: Booster проверяет метки в реестре и показывает, что появилось новое. Если выпуск пропущен, это тоже отмечено.
  • Деплои: текущий и предыдущий («rollback»).
  • Приложения: сколько обновлений ждёт Flatpak.
  • Компоненты: версии панели Niti и самого Atomic Booster.

Что можно сделать

  1. Обновить системуСкачать новый образ и применить при следующей перезагрузке. Перед этим проверяются подпись образа и список пакетов (SBOM): без подписи обновление не стартует. Идёт через bootc upgrade.
  2. Сменить каналПереключиться на другую ветку образа, например со stable на latest. Подпись нового канала также проверяется. Команда за кнопкой: bootc switch.
  3. ОткатитьсяВернуть предыдущий деплой, если новая сборка не подошла: bootc rollback и перезагрузка. Домашняя папка при этом не затрагивается.
  4. Обновить приложенияОбновить все Flatpak одной кнопкой.
  5. Обновить компонентыПанель Niti и сам Booster обновляются отдельно от образа, по подписанным ссылкам, с перезапуском службы.

Образ обновляется целиком и применяется после перезагрузки. Пока вы работаете, текущая система не меняется. Подробнее про механизм: обновление и откат.

Приложения и Flatpak

Каталог

Каталог приложений по категориям (общение, браузеры, документы, мультимедиа, игры, редакторы, системные инструменты) с поиском. Приложение ставится из Flathub, а источник и зеркало настраиваются здесь же.

Установленные

  • Раздельно пользовательские и системные приложения.
  • Обновить одно приложение или все сразу.
  • Удалить приложение.
  • Заморозить версию: приложение перестанет обновляться (в основе flatpak mask), пока вы не снимете заморозку.

Источники

  • Flathub: основной каталог. Можно включить или отключить.
  • Прокси ALT Linux для Flathub: зеркало от команды ALT Gnome. Выручает, когда dl.flathub.org недоступен или загрузка идёт медленно, например из России. Приложения те же, подписи проверяются ключом зеркала. Включается одним переключателем, там же и выключается.
  • ALT Hub (тестовый): репозиторий Flatpak с приложениями, адаптированными под ALT. Репозиторий тестовый: приложения могут быть нестабильны.

Капсулы, Distrobox и Podman

Три вкладки про приложения и контейнеры. Для каждой есть отдельная страница с подробным рассказом, что это, зачем нужно и как пользоваться:

Безопасность и надёжность

  • Подпись и SBOM. Перед обновлением и сменой канала проверяются подпись образа (cosign) и список пакетов с уязвимостями. Нет подписи или она не сходится: обновление не выполняется. Команды bootc из терминала подпись не проверяют.
  • Права. Привилегированные действия (обновление образа, смена источников Flatpak, установка капсул) запрашивают права через polkit. Остальное работает от имени пользователя.
  • Без shell. Backend запускает программы списком аргументов, без склейки строк и без shell, поэтому имя пакета не может превратиться в команду.
  • Таймауты и отмена. У каждого внешнего процесса есть таймаут, отмену можно сделать в любой момент, а процесс корректно завершается и убирается.
  • D-Bus. Другие части системы (ReadySet, Niti) управляют Booster через шину, а доступ к ней ограничен.
  • Проверки. Тесты, санитайзеры памяти и valgrind запускаются в CI ежедневно.

Как открыть

  • Из меню приложений: «Atomic Booster».
  • Из виджета обновлений в панели Niti кнопкой «Atomic Booster».
  • Из терминала сразу на нужную вкладку, например Distrobox: atomicbooster-vala --distrobox.
  • Из мастера ReadySet: шаги про источники и приложения меняют настройки через Booster.

Для разработчиков

Booster построен слоями: общий публичный контракт, логика отдельно от интерфейса, вкладки из общих блоков. Исходный код открыт, лицензия GPL-3.0 или новее.