Инструментарий 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