Проект Silverblue будет развивать атомарно обновляемый вариант Fedora Workstation
Как сообщает opennet.ru маттиас Класен (Matthias Clasen), лидер Fedora Desktop Team и участник GNOME Release Team, представил инициативу Team Silverblue, нацеленную на продолжение разработки проекта Fedora Atomic Workstation и доведения его до состояния полноценного продукта, пригодного к повседневному использованию и опережающего по своим возможностям классический вариант Fedora для рабочего стола.
В частности, в Atomic Workstation планируется предоставить расширенные возможности для людей, занимающихся разработкой ПО, улучшить поддержку запуска приложений в изолированных контейнерах (отдельные контейнеры для решения разных задач на рабочем столе) и реализовать инструменты для быстрого отката изменений. Со временем Fedora Workstation рассчитывают заменить на решение, в котором приложения отделены от операционной системы, а обновления устанавливаются атомарно.
Полноценный выпуск Atomic Workstation, который будет доведен до паритета по функциональности с Fedora Workstation, планируется подготовить в рамках цикла разработки Fedora 29. В Fedora 30 намечена поставка Atomic Workstation в качестве приоритетной сборки для рабочих столов, вместо классического Fedora Workstation. Имя, под которым Atomic Workstation будет предложен пользователям, пока не определено, в качестве основных вариантов называются Fedora Silverblue и Fedora Desktop. В настоящее время сформирован тестовый образ (1.9 Гб) на базе Fedora 28.
Atomic Workstation будет поставляться в монолитном виде, без разделения базовой системы на отдельные пакеты и с атомарным обновлением всего окружения через замену образа всей системы или установки инкрементальных обновлений. Все дополнительные приложения устанавливаются в виде контейнеров. Для формирования базового окружения используется технология OSTree, при которой системный образ атомарно обновляется из Git-подобного хранилища, позволяющего применять методы версионного контроля к компонентам дистрибутива (например, можно быстро откатить систему к прошлому состоянию).
Базовое окружение (/ и /usr) монтируется в режиме "только чтение". Доступные для изменения данные размещаются в каталоге /var (в том числе /etc создан как символическая ссылка на /var/etc, /home как ссылка на /var/home и /opt как ссылка на /var/opt). За установку и обновление содержимого базовой системы (/ и /usr) отвечает OSTree. RPM-пакеты транслируются в репозиторий OSTree при помощи специальной прослойки rpm-ostree, которая кроме манипуляции готовыми образами (образы с расширениями для ОС) предоставляет слой для установки десктоп-приложений в виде обычных RPM-пакетов.
Пользователь по-прежнему может установить rpm-пакет в окружении Fedora Workstation, только вместо команды "dnf install" придется использовать "rpm-ostree install", после чего rpm-ostree сформирует новый базовый образ и заменит им текущий установленный образ базовой системы. При этом в качестве основного механизма поставки, установки и обновления приложений, не требующего пересборки базового образа, преподносится система самодостаточных пакетов flatpak. Применение flatpak позволяет отделить приложения от основной системы и обеспечить запуск каждого приложения в отдельном контейнере.
Изолированное окружение во flatpak формируется из типового системного окружения (runtime) и дополнительных зависимостей (bundle), связанных с приложением. В сумме runtime и bundle образуют начинку контейнера, при том, что runtime устанавливается отдельно и привязывается сразу к нескольким контейнерам, что позволяет обойтись без дублирования общих для контейнеров системных файлов. В одной системе может быть установлено несколько разных runtime (GNOME, KDE) или несколько версий одного runtime (GNOME 3.26, GNOME 3.28), в зависимости от требований используемых программ. Контейнер с приложением в качестве зависимости использует привязку только к определенному runtime, без учета отдельных пакетов, из которых состоит runtime. Все недостающие элементы упаковываются непосредственно вместе с приложением.