Состоялся (https://calamares.io/calamares-3.2.0-is-out/) релиз инструментария для построения инсталляторов Calamares 3.2 (https://calamares.io/), не зависящего от конкретных дистрибутивов Linux. Разработчикам дистрибутивов предоставлено несколько десятков готовых модулей c реализацией различных возможностей, востребованных в инсталляторах. Код написан (https://github.com/calamares/calamares) на языке С++, графический интерфейс основан на библиотеке Qt 5 (используется QML), для разработки модулей могут применяться языки C++ и Python. Calamares уже используется для организации установки дистрибутивов Manjaro, Sabayon, Chakra, NetRunner, KaOS, OpenMandriva и KDE neon. Проект развивается при участии сообществ KDE, Fedora, Kubuntu и Maui.
Calamares предоставляет такие возможности, как ручной и автоматический режимы разбиения дисковых разделов, гибкая система адаптации внешнего вида, модульная архитектура, большой выбор готовых модулей (от управления загрузчиками, до управления пользователями). Например, имеются модули для использования NetworkManager, UPower, systemd-boot, GRUB, sgdisk, squashfs-tools и rsync. Установка может быть организована путём замены раздела - данные копируются на новый раздел, который делается активным вместо ранее используемого раздела, что удобно для тестирования новых установок, оставляя возможность отката на прошлую версию.
Для создания собственного установщика на базе Calamares достаточно выбрать готовые модули (https://github.com/calamares/calamares/tree/master/src/modules) или написать собственные, определить логику установки дистрибутива и настроить внешний вид (https://github.com/calamares/calamares/tree/master/src/branding). Для упрощения и ускорения разработки модули и компоненты Calamares могут создаваться на языке Python (для интеграции с С++ используется Boost.Python (http://www.boost.org/doc/libs/1_57_0/libs/python/doc/index.html)). Все конфигурационные данные хранятся в формате YAML.
Основные новшества:
- Добавлен модуль openrcdmcryptcfg для настройки конфигураций с системой инициализации OpenRC и шифрованной ФС, который может применяться в дистрибутивах не использующих systemd;
- Добавлен модуль для рабочего стола KDE Plasma, позволяющий на этапе установки выбрать тему оформления и настроить внешний вид;
- Добавлены модули ShellProcess и ContextualProcess, предназначенные для запуска последовательности shell-команд. ShellProcess может заменить другие модули, созданные на базе dummyprocess, предлагая унифицированный файл конфигурации settings.conf. ContextualProcess позволяет запускать наборы команд на основании определённых параметров конфигурации, например, типа прошивки. Возможно сопоставление значений параметров по маске;
- В модуль bootloader добавлена настройка installEFIFallback, позволяющая управлять режимом установки в окружении UEFI;
- Улучшено определение наиболее вероятной раскладки клавиатуры, на основании выбранного языка;- Названия языков в форме выбора языка на первой странице теперь отображаются с использованием национальных алфавитов;
- Добавлена опция командной строки "-D" для выбора уровня отладочных логов. Переработан отладочный фреймворк;
- Обеспечена поддержка повторяемых сборок;
- Сессионный лог переименован в ~/.cache/calamares/session.log
- Добавлена поддержка настройки менеджера обновлений через указание специфичного для системы URL;
- Добавлена функция информирования пользователя о завершении установки;
- Убрана жесткая привязка в /bin/bash;
- Повышены требования к версии библиотеки KPMCore, для работы теперь требуется как минимум выпуск 3.3, в котором появилась поддержка разделов LVM.
URL: https://calamares.io/calamares-3.2.0-is-out/
Новость: https://www.opennet.dev/opennews/art.shtml?num=48618
>Все конфигурационные данные хранятся в формате YAMLЧто мотивирует людей в 2018 использовать это уродство я просто не понимаю 🤦
Ну там есть подсветка синтаксиса, и это лучше чем например, каждая строчка это key=value и да, такое используется во flatpak. И лучше чем xml.. так что уже хорошо
> Что мотивирует людей в 2018 использовать это уродствоналичие приятных готовых парсеров, разумеется.
А key=value надо самому писать, это немодно, сложно, можно ошибиться и выглядеть тем-самым-лохом у которого экпсплойт через конфиги. (а если то же самое в готовой либе - это ж не мы, это все - они, и вообще мы уже обновились на ее новую версию с улучшенными багами)скажите спасибо, что не xml или json.
JSON как раз было бы хорошо. Да и key=value можно готовый найти, зачем писать.
Кому хорошо? Ломалам? Нормальных парсеров не было и нет.
Эм? Почти в любом языке в стандартной библиотеке есть парсер JSON...
Здесь речь идёт не о "почти любом языке" отнюдь. Рекомендую осилить буквы и научиться читать для начала
https://github.com/nlohmann/std_json/blob/master/proposal.md
Ниче, не переживай, скоро мб и в ваше старье завезут современную технологию JSON))))
рукалицо
А ничего, что JSON является помножеством YAML?
Ничего. Открывая YAML я так и не научился его сходу парсить себе в голову, хотя довольно часто приходится это делать, так как используем openapi, а там этот чертов YAML. С JSON такой проблемы нет, да, там лишние строки и скобки, да, меньше помещается в экран, но да и пофиг экраны сейчас большие
А переписать этот чертов YAML в виде JSON не пробовали? Или что по-вашему означает фраза "JSON - это подмножество YAML"? YAML парсер понимает JSON. Чтобы генерился на выходе JSON - опции должны быть.
Они и есть, но к сожалению я там джуниор разработчик, а главному нравится YAML.
Сочувствую твоей команде.
Найди 10 отличий и определи где yaml а где JSON
~~~
{
"firstName": "Иван",
"lastName": "Иванов",
"address": {
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": "101101"
},
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
}
~~~~~~~~~
"firstName": "Иван",
"lastName": "Иванов",
"address": {
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": "101101"
},
// А тут коментарии
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
YAML конфиг "in the wild" выглядит примерно так https://editor.swagger.io/, а не как у тебя со скобками и без особой вложенности.
В ямле ненормальны 2 вещи - встроенные тего-свистоперделки и пробелы, прибитые гвоздями.
Неужто изобрели что-то лучше чем yaml?
JSON
JSON прекрасен, но он не всегда удобен именно для хранения конфигурации. Т.к. формат не предусматривает комментариев, очень порой полезных.
Отлично. Напиши ещё парсер тогда и переезжаем на ЖСОН.
JSON5
TOML
Вроде QML, а по скрину похоже на
💩. Хоть бы Материал включили что ли.
QML - рисовалка, какая связь между рисовалкой и тем, что с ее помощью нарисовано?
Каждый из выше перечисленных дистрибутивов сильно кастомизируют инсталятор до вполне приемлемого уровня - на скрине абсолютный дефолт с опором на функционал. Как уже написал выше дефолт никто не использует.
Выглядит-то как г*о, как впрочем и большинство модных КуТешных поделок. Ну и да, серьезные дистрибутивы - те, которые разрабатывают, а не тупо собирают (типа дебиана) все равно пилят свое.
Qt как бы легко может в красоту, особенно с Qt Quick Controls 2, и он не виноват, что большинство разрабов плохие дизайнеры
Ну как сказать, на Gtk все однотипно и даже не вырвиглазно. Другое дело, что гномеры обычно половину контролов теряют, ну дык это ж гномеры.
> Выглядит-то как г*о, как впрочем и большинство модных КуТешных поделок. Ну и
> да, серьезные дистрибутивы - те, которые разрабатывают, а не тупо собирают
> (типа дебиана) все равно пилят свое.тот же дебиан активно помогает развивать этот продукт и не использует только потому что еще не весь функционал который есть в текущем был реализован. В частности раньше нормально не работал функционал связанный с LVM и LUKS, что существенно. Когда все функции будут полностью имплементированы скорее всего и они начнут использовать его по дефолту.
А есть что-нибудь такое же, но --с перламутровыми пуговицами-- с текстовым интерфейсом?
> А есть что-нибудь такое же, но --с перламутровыми пуговицами-- с текстовым интерфейсом?С имаксом, комстрокой и лиспом есть -- брать будете?
Да. Ссылку в студию, пожалуйста.
#>>С имаксом, комстрокой и лиспом есть [I]-- брать будете?[/I]
> Да. Ссылку в студию, пожалуйста.https://www.gnu.org/software/guix/manual/html_node/Preparing...
https://www.gnu.org/software/guix/manual/html_node/Proceedin...Лиспом - гайл ским, имаксом - GNU Zile [[на полставки[[, но вроде можно прямо на лайве [поробовать!] сказать guix install emacs[[.
[I]Так будете брать-то, очередь не задерживайте!?