Разработчики проекта openSUSE опубликовали план по развитию нового инсталлятора Agama (бывший D-Installer), разрабатываемого для замены классического интерфейса установки SUSE и openSUSE, и примечательного отделением пользовательского интерфейса от внутренних компонентов YaST. Agama предоставляет возможность использования различных фронтэндов, например, фронтэнда для управления установкой через web-интерфейс. Для тестирования нового инсталлятора формируются live-сборки для архитектур x86_64 и ARM64, поддерживающие установку непрерывно обновляемой сборки openSUSE Tumbleweed, а также редакций SUSE ALP, openSUSE MicroOS и openSUSE MicroOS Desktop, построенных на базе изолированных контейнеров.
На этот год намечено два значительных обновления Agama. Первое планируется представить в середине апреля, а второе в середине июля.
Июльское обновление будет нацелено на повышение гибкости и функциональности, связанной с установкой а автоматическом режиме, проводимой без участия человека. Целью разработки является доведение Agama до возможности использования в качестве альтернативы инструментарию AutoYaST.
Апрельское обновление примечательно прекращением использования готовых модулей, развиваемых проектом Cockpit, в пользу использования более независимого фреймворка и модернизированного интерфейса пользователя. Уход от привязки к Cockpit позволит исключить дополнительные внешние зависимости и избавиться от ограничений, мешающих реализации некоторых идей. Например, Cockpit содержит в зависимостях компоненты на языках Python и Си, в то время как в Agama применяются языки Ruby и Rust. Прекращение использования Cockpit также избавит разработчиков от ограничений, с которыми они столкнулись при попытках реализовать автоматический режим установки и переработать интерфейс настройки хранилищ для достижения оптимального баланса простоты для начинающих и функциональности для опытных пользователей.
На текущем этапе развития в новом инсталляторе уже предоставляются возможности, необходимые для решения таких задач, как выбор начального набора приложений, настройка сетевого подключения, языка, клавиатуры, часового пояса и параметров локализации, подготовка устройства хранения и разбивка разделов, добавления пользователей в систему. Среди основных целей разработки Agama упоминается устранение имеющихся ограничений графического интерфейса, расширение возможностей по использованию функциональности YaST в других приложениях, уход от привязки к одному языку программирования (D-Bus API позволит создавать надстройки на разных языках) и стимулирование создания альтернативных настроек представителями сообщества.
Для установки пакетов, проверки оборудования, разбивки дисков и прочих необходимых при инсталляции функций в Agama продолжают использоваться библиотеки YaST, поверх которых реализованы сервисы-прослойки, абстрагирующие доступ к библиотекам через унифицированный интерфейс D-Bus. В инсталляторе используется многопроцессная архитектура, благодаря которой интерфейс взаимодействия с пользователем не блокируется во время выполнения других работ.
Базовый интерфейс для управления установкой построен с использованием web-технологий и включает обработчик, обеспечивающий доступ к вызовам D-Bus через HTTP, и непосредственно web-интерфейс. Web-интерфейс написан на JavaScript с использованием фреймворка React и компонентов PatternFly. Сервис для привязки интерфейса к D-Bus, а также встроенный http-сервер, написаны на языке Ruby.