Обновления и откат
Обновление это новый образ и перезагрузка. Если что-то не так, одна команда возвращает прошлое состояние.
Как обновить систему#
apm system upgrade
sudo rebootapm system upgrade скачивает свежий образ в «ожидание» (staged). Пока вы работаете, текущая система не меняется, а после перезагрузки новый образ становится активным целиком. Обновляется система внутри вашего канала: stable остаётся stable, latest остаётся latest.
Обновляться можно и без терминала: из виджета обновлений в панели Niti и из Atomic Booster (вкладка «Atomic Niri»).
Как откатиться#
Система хранит два состояния: текущее и предыдущее. Если новая сборка вам не подошла:
sudo bootc rollback
sudo rebootОткат занимает секунды: меняются местами две записи загрузчика, ничего не скачивается и не пересобирается. Если обновление уже скачано, но ещё не применено, rollback отбросит его.
Важно. Хранятся только два состояния. После следующего обновления откатным станет то, на котором вы сидели до него.
Что в системе сейчас#
bootc statusКоманда покажет текущий образ, канал и деплои: какой запущен, какой ждёт, какой откатный.
Сменить канал#
sudo bootc switch altlinux.space/plafonlinux/atomic-niri-plafon:stable
sudo rebootПосле переключения все обновления идут из нового канала. Описание каналов в разделе ветки образа.
Почему обновления небольшие#
Образ состоит из слоёв. Если содержимое слоёв перемешивается при каждой сборке, то даже при крошечной правке клиент скачивает почти всё заново. Чтобы этого избежать, образ перед публикацией «нарезают» на слои заново.
В Atomic Niri это делает chunkah: инструмент проекта CoreOS на Rust, который раскладывает файлы образа по слоям по границам пакетов (по базе RPM). Состав пакетов между сборками почти не меняется, поэтому слои остаются теми же, и при обновлении скачивается только изменившаяся часть.
- chunkah дополняет, а не заменяет докачку на стороне клиента (zstd:chunked): chunkah отвечает за нарезку слоёв при сборке, клиент за то, что докачивается.
- Его предшественник rechunk сравнивал новую сборку с прошлой, а chunkah работает по составу пакетов и устроен проще.
- В экосистеме ALT chunkah пока помечен как экспериментальный.
Образ в реестре занимает около 2,6 ГиБ, но при обновлении скачивается только изменившаяся часть.
Подпись образов и SBOM#
Образы latest, stable и dev-test подписаны ключом проекта (cosign), к образу приложен SBOM в формате CycloneDX со списком пакетов и известных уязвимостей (сканер trivy). Atomic Booster проверяет подпись и SBOM перед обновлением и сменой канала. Если подписи нет или она не сходится, обновление не выполняется.
Проверить подпись вручную (нужен cosign, публичный ключ лежит в образе):
cosign verify --key /usr/share/atomic-booster/release-pubkey.pem \
altlinux.space/plafonlinux/atomic-niri-plafon:latestSBOM текущей системы лежит в /usr/share/doc/atomic-sbom.cdx.json.
Шпаргалка#
| Задача | Команда |
|---|---|
| Обновиться | apm system upgrade, затем sudo reboot |
| Откатиться | sudo bootc rollback, затем sudo reboot |
| Сменить канал | sudo bootc switch altlinux.space/plafonlinux/atomic-niri-plafon:КАНАЛ |
| Что установлено | bootc status |
Временно править /usr | sudo bootc usr-overlay |