Выпуск независимого от дистрибутивов инсталлятора Calamares 3.0
Состоялся релиз инструментария для построения инсталляторов Calamares 3.0, не зависящего от конкретных дистрибутивов Linux. Разработчикам дистрибутивов предоставлено несколько десятков готовых модулей c реализацией различных возможностей, востребованных в инсталляторах. Код написан на языке С++, графический интерфейс основан на библиотеке Qt 5 (используется QML), для разработки модулей могут применяться языки C++ и Python. Calamares уже используется для организации установки дистрибутивов Manjaro, Sabayon, Chakra, NetRunner, KaOS, BBQLinux, Tanglu, OpenMandriva и KDE neon. Проект развивается при участии сообществ KDE, Fedora, Kubuntu и Maui.
Calamares предоставляет такие возможности, как ручной и автоматический режимы разбиения дисковых разделов, гибкая система адаптации внешнего вида, модульная архитектура, большой выбор готовых модулей (от управления загрузчиками, до управления пользователями). Например, имеются модули для использования NetworkManager, UPower, systemd-boot, GRUB, sgdisk, squashfs-tools и rsync. Установка может быть организована путём замены раздела — данные копируются на новый раздел, который делается активным вместо ранее используемого раздела, что удобно для тестирования новых установок, оставляя возможность отката на прошлую версию.
Для создания собственного установщика на базе Calamares достаточно выбрать готовые модули или написать собственные, определить логику установки дистрибутива и настроить внешний вид. Для упрощения и ускорения разработки модули и компоненты Calamares могут создаваться на языке Python (для интеграции с С++ используется Boost.Python). Все конфигурационные данные хранятся в формате YAML.
В новой версии представлен новый интерфейс для разработки модулей на основе PythonQt. Новый интерфейс является опциональным и предоставляет альтернативные средства для создания модулей на языке Python 3 с использованием библиотеки Qt 5. Для включения нового интерфейса следует воспользоваться сборочной опции »-DWITH_PYTHONQT=ON». В качестве примера использования PythonQt предоставлен модуль dummypythonqt. Начиная с Calamares 3.0 прекращена поддержка библиотеки KPMcore 2, для управления дисковыми разделами требуется наличие KPMcore 3.0.2 или более новой версии.
Дополнительно можно отметить объявление о реализации возможности использования инсталлятора на базе Calamares в дистрибутиве KDE neon. Инсталлятор уже доступен для тестирования в сборах KDE neon Developer Unstable. По сравнению с ранее применяемым инсталлятором Ubiquity пока отсутствует полноценная поддержка OEM-установок, требуется дополнительная работа по интеграции средств для установки дополнительных кодеков и LUKS-шифрования, пока не реализован режим обновления пакетов до свежих версий во время установки, отсутствует поддержка UEFI Secure Boot.
© OpenNet