Инструментарий SerpentOS доступен для тестирования
После двух лет работы над проектом разработчики дистрибутива SerpentOS заявили о возможности тестирования основного инструментария, включающего в себя:
- пакетный менеджер moss;
- систему контейнеров moss-container;
- систему управления зависимостями moss-deps;
- систему сборки boulder;
- систему сокрытия сервисов avalanche;
- менеджер репозиториев vessel;
- панель управления summit;
- базу данных moss-db;
- систему воспроизводимого бутстрэппинга (bootstrap) bill.
Доступны публичный API и рецепты пакетов. Для разработки инструментария в основном используется язык программирования D, а код распространяется под лицензией Zlib. Пакеты пишутся на языке конфигурации YAML и собираются в собственный бинарный формат .stone, который включает:
- Метаданные пакета и его зависимости;
- Информацию о расположении пакета в системе относительно других пакетов;
- Индекс кэшированных данных;
- Содержимое файлов пакета, необходимых для работы.
Пакетный менеджер moss заимствует многие современные возможности, развиваемые в таких пакетных менеджерах, как eopkg/pisi, rpm, swupd и nix/guix, сохраняя при этом традиционный взгляд на манипуляцию пакетами. Все пакеты по умолчанию собираются в режиме stateless и не включают файлы, не связанные с операционной системой, чтобы избежать ситуаций, в которых требуется разрешение конфликтов между пакетами или операции слияния.
Пакетный менеджер использует атомарную модель обновления системы, при которой фиксируется состояние rootfs, а после обновления состояние переключается на новое. Как следствие если в ходе обновления возникли какие-то проблемы, имеется возможность отката изменений на прошлое рабочее состояние.
Для экономии дискового пространства при хранении нескольких версий пакетов применяется дедупликация на основе жёстких ссылок и совместно используемого кэша. Содержимое установленных пакетов размещается в каталоге /os/store/installation/N, где N номер версии. К содержимому данного каталога при помощи ссылок привязываются базовые каталоги (например, /sbin указывает на /os/store/installation/0/usr/bin, а /usr на /os/installation/0/usr).
Процесс установки пакетов состоит из следующих этапов:
- Написание рецепта по установке (stone.yml);
- Сборка пакета c помощью boulder;
- Получение бинарного пакета в формате .stone с необходимыми метаданными;
- Занесение в базу данных пакетов;
- Установка пакетным менеджером moss.
Вокруг проекта сплотилась старая команда разработчиков дистрибутива Solus. Например, в разработке дистрибутива SerpentOS принимают участие Айки Доэрти (Ikey Doherty), создатель дистрибутива Solus, и Джошуа Стробл (Joshua Strobl), ключевой разработчик рабочего стола Budgie, ранее объявивший об уходе из управляющего совета (Core Team) проекта Solus и снявший с себя полномочия лидера, отвечающего за взаимодействие с разработчиками и развитие пользовательского интерфейса (Experience Lead).
Разработчики SerpentOS призывают специалистов, знающих язык программирования D, присоединиться к разработке основного инструментария и/или написанию рецептов пакетов, а нетехнических специалистов просят помочь в переводе документации на различные языки.
Источник: http://www.opennet.ru/opennews/art.shtml? num=58192
© OpenNet