Компания Blue Systems, развивающая дистрибутив Netrunner (ответвление от Kubuntu) и предоставляющая финансирование разработки KWin, Kubuntu и KDE-редакции дистрибутива Linux Mint, в сотрудничестве с участниками проектов KDE, BBQLinux, Fedora, KaOS, Kubuntu, Manjaro и Maui, подготовила первый выпуск Calamares, универсального фреймворка для построения инсталляторов, не зависящего от конкретных дистрибутивов Linux. Фреймворк предоставляет несколько десятков готовых модулей c реализацией различных возможностей, востребованных в установщиках дистрибутивов. Код фреймворка написан на языке С++, графический интерфейс основан на библиотеке Qt 5 (используется QML), для разработки модулей могут применяться языки C++ и Python. Код распространяется под лицензий GPLv3.

Мотивом создания Calamares является желание наладить сотрудничество между дистрибутивами в области разработки инсталляторов. Несмотря на схожесть решаемых задач, в настоящее время каждый дистрибутив развивает собственный инсталлятор или пытается развивать ответвление от инсталлятора другого дистрибутива. В рамках проекта Calamares предпринята попытка привлечь разработчиков к совместной работе по созданию типовых универсальных блоков, из которых дистрибутивы бы могли формировать инсталляторы, адаптированные для потребностей каждого дистрибутива. При этом прокт Calamares не ставит перед собой задачу подготовки замены существующим инсталляторам первичных дистрибутивов, а скорее пытается предоставить универсальные и не зависящие от особенностей конкретных дистрибутивов средства быстрого создания инсталляторов для новых и независимых дистрибутивов.

Для создания собственного установщика на базе Calamares достаточно выбрать готовые модули или написать собственные, определить логику установки дистрибутива и настроить внешний вид. Для упрощения и ускорения разработки модули и компоненты Calamares могут создаваться на языке Python (для интеграции с С++ используется Boost.Python). Все конфигурационные данные хранятся в формате YAML.

Основные особенности:

  • Полностью модульная архитектура, предоставляющая три вида интерфейсов плагинов: C++, Python и произвольные процессы-обработчики;
  • Многопоточный исполнитель заданий с управляющим API для языков C++ и Python;
  • Коллекция из 25 готовых модулей, предоставляющих средства от управления загрузчиками до настройки таблиц разделов и управления пользователями;
  • Автономный механизм определения внешнего вида, позволяющий создать установщик в стиле оформления дистрибутива без необходимости применения патчей;
  • Продвинутый редактор дисковых разделов с поддержкой таблиц разделов DOS и GPT, средствами автоматической разбивки и изменения размера разделов.


Источник: http://www.opennet.ru/opennews/art.shtml?num=41582