Дистрибутив Vanilla OS 3 под кодовым названием Reunion вышел , спустя два года после Vanilla OS 2 Orchid. В третьей версии появилась официальная поддержка ARM64, обновлено рабочее окружение до GNOME 50 и ядро до Linux 7.1.3, а сборка образов стала воспроизводимой. В состав системы включён Vanilla Continuity – инструмент резервного копирования на основе снимков. Подсистемы Apx и Vanilla System Operator переписаны на новом Vanilla OS SDK, из-за чего изменился синтаксис части команд.

Что такое Vanilla OS и чем он отличается от Debian

Vanilla OS – неизменяемый дистрибутив с рабочим окружением GNOME. Первая стабильная версия 22.10 вышла в и собиралась на Ubuntu; во второй версии, выпущенной в , основой стал Debian. От привычной установки Debian дистрибутив отличается двумя вещами: способом обновления и способом установки программ.

В обычном дистрибутиве система меняется пакет за пакетом: apt распаковывает файлы поверх существующих, и прерванная на середине операция оставляет систему в промежуточном состоянии. В Vanilla OS корневая файловая система смонтирована только для чтения, а обновление применяется целиком либо не применяется вовсе.
Неизменяемая система (immutable) – система, корневая файловая система которой смонтирована только для чтения. Пользовательские программы устанавливаются в отдельные изменяемые области: контейнеры, Flatpak-пакеты или каталог пользователя.
За это отвечает ABRoot. Утилита работает с двумя корневыми файловыми системами: одна активна, вторая резервная. Новое состояние разворачивается из OCI-образа в неактивный корень, и только после перезагрузки система переключается на него. Если обновление оказалось неудачным, при загрузке доступно прежнее состояние.
Атомарное обновление – обновление, которое либо применяется полностью, либо не применяется вообще. Промежуточного состояния, при котором часть пакетов обновилась, а часть нет, не возникает.
Второе отличие касается установки программ. Устанавливать пакеты в корневой раздел через ABRoot можно, но раздел рассчитан на модули ядра и системные компоненты. Обычные приложения ставятся из Flatpak либо в контейнерные подсистемы, которыми управляет Apx: одна и та же команда работает с apt, dnf, zypper и другими пакетными менеджерами, а сами пакеты остаются внутри контейнера и не затрагивают основную систему.

Поддержка ARM64 на устройствах с UEFI

Vanilla OS 3 официально поддерживает устройства ARM64 с прошивкой UEFI – от одноплатных компьютеров до ноутбуков и рабочих станций на процессорах этой архитектуры. Все образы стали мультиархитектурными, и каждый пакет проекта собирается в том числе под ARM64.
По заявлению команды проекта, работа на ARM64 не отличается от AMD64 и ограничений по возможностям не имеет. Независимой проверки этого утверждения нет.
Воспроизводимые сборки для всех образов, кроме NVIDIA
Большинство системных образов Vanilla OS 3 собираются воспроизводимо. Исключение составляют образы с драйверами NVIDIA – из-за того, как устроена работа с модулями ядра.
Воспроизводимая сборка – сборка, при которой одни и те же исходные тексты и настройки дают побитово идентичный результат. Любой желающий может повторить сборку у себя и сверить результат с опубликованным образом.
Практический смысл в том, что доверие к образу перестаёт опираться исключительно на инфраструктуру GitHub Actions, где идёт сборка. Подмену образа можно обнаружить независимо, без доступа к серверам проекта.
GNOME 50 и смена стандартных приложений
Рабочее окружение обновлено до GNOME 50 «Tokyo» с сессией только на Wayland и улучшенным дробным масштабированием. Сессия X11 в GNOME 50 удалена на стороне самого проекта GNOME, так что альтернативы здесь нет. Ядро – Linux 7.1.3.
Набор приложений по умолчанию заметно изменился. Вместо терминала Black Box установлен Ptyxis: из него можно сразу открыть оболочку основной системы (в интерфейсе – пункт My Computer), оболочку VSO (apx-vso-native) или любую созданную подсистему Apx. Evince уступил место форку Papers, который в русской локализации GNOME носит название «Просмотрщик документов». Вместо «Системного монитора» поставляется приложение «Ресурсы» (Resources).
Два приложения из стандартного набора исключены: «Менеджер архивов» (File Roller) и «Фотографии» больше не устанавливаются автоматически. Поскольку изменений в наборе программ со времён Orchid набралось много, в мастер первоначальной настройки First Setup добавлен режим обновления. Он запускается автоматически после перехода на новую версию, и в нём можно доустановить новые приложения и убрать устаревшие.
Обои по умолчанию тоже сменились: набор Fairy Tale доступен в светлом и тёмном вариантах.
Vanilla Continuity: резервные копии на снимках
Неизменяемость защищает систему, но не пользовательские файлы. Для них в Reunion добавлен Vanilla Continuity – инструмент резервного копирования и восстановления на основе снимков, входящий в состав образа и работающий совместно с ABRoot. В копию попадают домашние каталоги, список установленных Flatpak-приложений и метаданные ABRoot.
Снимки хранятся в репозитории. По умолчанию это каталог в самой системе; альтернативы – внешний накопитель, для которого настраивается шифрование LUKS2, либо удалённый сервер по SFTP, FTP или NFS.
host-shell pkexec continuity backup [backup-label]
host-shell pkexec continuity list
host-shell pkexec continuity restore <snapshot-id>
Continuity 1.0.0 – первый выпуск инструмента, графического интерфейса пока нет, работа идёт только из командной строки.
Apx и VSO версии 3 на новом SDK
Apx и Vanilla System Operator (VSO) переписаны поверх Vanilla OS SDK – общего набора библиотек и инструментов для журналирования, работы с правами доступа, конфигурацией и системными вызовами. Побочный результат перехода – локализация через PO-файлы и единообразное поведение утилит.
Конфигурация Apx переехала из apx.json в config.json, а часть команд изменила синтаксис.
| Было | Стало |
|---|---|
| apx ... --app-name | apx ... --app |
| vso config set -k key -v value | vso config set key value |
| vso sys-upgrade upgrade | vso upgrade |
| vso sys-upgrade check | vso upgrade check |
| vso pico-init | vso native init |
| vso export / vso install | vso native export / vso native install |
Флаг --app-name сменился на --app в командах export и unexport. В стандартные наборы Apx добавлены Debian и openSUSE Leap, так что пакеты из этих дистрибутивов теперь доступны без ручной настройки контейнера. Базовый образ набора vanilla-dev переведён с dev-image на pico-image – так свежие пакеты приходят быстрее. Добавлена поддержка подсистем на Ubuntu 26.04.
Графический интерфейс Apx опубликован на Flathub и доступен пользователям любого дистрибутива; в самой Vanilla OS 3 он поставляется как Flatpak, что ускоряет выход исправлений. Образ VSO переведён с ветки Debian Sid на Debian Testing – пакеты остаются свежими, но состояние ветки предсказуемее. В VSO 3 появились init-хуки: при запуске подсистемы можно автоматически выполнять заданные сценарии.
Distrobox 2.0.0-rc.4 и подсистема apx-vso-native
Distrobox переписан на Go, и в Vanilla OS 3 входит версия 2.0.0-rc.4, проверенная на совместимость с Apx 3. Подсистема VSO теперь создаётся под именем apx-vso-native: прежнее имя apx-vso-pico отражало основу в виде pico-image, от которой отказались.
Тем, кто продолжает пользоваться старой подсистемой apx-vso-pico, в проекте советуют обновить пакеты внутри неё до обновления основной системы, иначе возможны проблемы совместимости. До обновления пакетов при systemd 261 внутри контейнера VSO требуется обходной приём:
for tmpfiles_conf in tmp.conf x11.conf systemd-tmp.conf openssh-client.conf tpm-udev.conf tpm2-tss-fapi.conf; do
sudo ln -sf /dev/null "/etc/tmpfiles.d/${tmpfiles_conf}"
done
sudo apt update
sudo apt upgrade
Если старая подсистема больше не нужна, её удаляют вручную:
host-shell podman rm -f apx-vso-pico
Что меняется для сборщиков собственных образов
Одновременно с дистрибутивом вышел Vib (Vanilla Image Builder) 1.1.0. В рецепте появилось свойство cleanup для удаления ненужных каталогов, каталоги sources при сборке теперь монтируются в контейнер, а не копируются в него – за счёт этого итоговые образы стали заметно меньше. Опция -o задаёт выходной Containerfile.
Изменения, из-за которых сборка старых рецептов может сломаться:
- образы стали мультиархитектурными, у большинства пакетов в именах появились суффиксы архитектуры;
- ghcr.io/vanilla-os/desktop:main переименован в ghcr.io/vanilla-os/gnome:latest;
- ghcr.io/vanilla-os/nvidia:main переименован в ghcr.io/vanilla-os/gnome-nvidia:latest;
- ghcr.io/vanilla-os/nvidia-exp:main переименован в ghcr.io/vanilla-os/gnome-nvidia-modern:latest;
- ghcr.io/vanilla-os/vm:main переименован в ghcr.io/vanilla-os/gnome-vm:latest;
- в ABRoot каталоги /opt и /usr/local сделаны символическими ссылками в /var, чтобы они были доступны на запись, поэтому в собственных образах эти пути использовать не следует;
- компонент FsGuard удалён ради упрощения загрузки.
Для сборок сообщества создана отдельная организация Vanilla-Flavors. Первый такой образ, china-image, поддерживают китайские участники проекта: в нём заранее настроены локальные параметры и зеркала репозиториев для материкового Китая.
Обновление с Orchid 1.4.0 и требование ABRoot 2.4.0
Переустанавливать систему не нужно. Для Vanilla OS 2 Orchid версии 1.4.0 переход на Reunion приходит обычным системным обновлением, вручную его запускают командой abroot upgrade. Здесь есть жёсткое ограничение: версии ABRoot младше 2.4.0 не работают с мультиархитектурными образами, и обновиться с них не получится – сначала придётся обновить сам ABRoot.
Установочные образы опубликованы на GitHub: Vanilla-OS-3-stable-amd64.20260812.iso размером 1 872 МБ и Vanilla-OS-3-stable-arm64.20260812.iso размером 1 751 МБ. Загрузить их можно также со страницы загрузки; инструкция по установке в документации обновлена.
Заключение
Ключевое приобретение Reunion – выход за пределы x86: с образами для ARM64 дистрибутив пригоден для одноплатных компьютеров и ноутбуков на этой архитектуре, чего в Orchid не было вовсе. Воспроизводимой сборкой и Continuity закрыты два слабых места неизменяемых систем: проверяемость образа и сохранность пользовательских файлов, за которые ABRoot не отвечает.
Пользователям Orchid стоит заранее проверить версию ABRoot и учесть переименование команд Apx и VSO – собственные сценарии и рецепты образов после обновления придётся править. Подробности перечислены в официальном анонсе релиза.