Distri — дистрибутив для обкатки технологий быстрого управления пакетами

2 сентября 2019 года

Майкл Штапельберг (Michael Stapelberg), автор мозаичного оконного менеджера i3wm и в прошлом активный разработчик Debian (сопровождал около 170 пакетов), развивает экспериментальный дистрибутив distri и одноимённый пакетный менеджер. Проект позиционируется как исследование возможных путей увеличения производительности систем управления пакетами и воплощает некоторые новые идеи построения дистрибутивов. Код пакетного менеджера написан на языке Go и распространяется под лицензией BSD.

Ключевой особенностью предложенного в дистрибутиве формата пакетов является поставка пакета в форме образов SquashFS, вместо сжатых tar-архивов. Применение SquashFS, по аналогии с форматами AppImage и Snap, позволяет "примонтировать" пакет без необходимости выполнения распаковки, что экономит дисковое пространство, допускает атомарные изменения и делает содержимое пакета мгновенно доступным. При этом пакеты distri, как и в классическом формате "deb", содержат только отдельные компоненты, связанные зависимостями с другими пакетами (библиотеки не дублируются в пакетах, а устанавливаются как зависимости). Иными словами, distri пытается совместить гранулированную пакетную структуру классических дистрибутивов, таких как Debian, с методами поставки приложений в форме монтируемых контейнеров.

Каждый пакет в distri монтируется в свой каталог в режиме только для чтения (например, пакет с zsh доступен как "/ro/zsh-amd64-5.6.2-3"), что положительно влияет на безопасность и защищает от случайных или злонамеренных изменений. Для формирования иерархии служебных каталогов, таких как /usr/bin, /usr/share и /usr/lib, применяется специальный FUSE-модуль, объединяющий содержимое всех установленных SquashFS-образов в одно целое (например, каталог /ro/share предоставляет доступ к подкаталогам share из всех пакетов).

Пакеты в distri принципиально избавлены от вызываемых в процессе установки обработчиков (нет хуков и триггеров), а разные версии пакета могут сосуществовать друг с другом, поэтому становится возможным распараллеливание установки пакетов. Предложенная структура ограничивает производительность пакетного менеджера только пропускной способностью сети, через которую загружаются пакеты. Непосредственно установка или обновление пакета выполняется атомарно и не требует дублирования содержимого.

Конфликты при установке пакетов исключаются так как каждый пакет связывается со своим каталогом и в системе допускается наличие разных версий одного пакета (в сводные каталоги подключается содержимое каталога с более свежей ревизией пакета). Сборка пакетов также осуществляется очень быстро и не требует установки пакетов в отдельное сборочное окружение (в сборочном окружении создаётся представления необходимых зависимостей из каталога /ro).

Поддерживаются типовые команды управления пакетами, такие как "distri install" и "distri update", а вместо информационных команд можно применять штатную утилиту "ls" (например, для просмотра установленных пакетов достаточно вывести список каталогов в иерархии "/ro", а для того чтобы узнать в состав какого пакета входит файл, посмотреть куда ведёт ссылка с этого файла).

Предложенный для экспериментов прототип дистрибутива включает около 1700 пакетов и готовые установочные образы с инсталлятором, пригодные как для установки в качестве основной ОС, так и для запуска в QEMU, Docker, Google Cloud и VirtualBox. Поддерживается загрузка с шифрованного дискового раздела и набор типовых приложений для создания рабочего стола на базе оконного менеджера i3 (в качестве браузера предлагается Google Chrome). Предоставляется полноценный инструментарий для сборки дистрибутива, подготовки и формирования пакетов, распространения пакетов по зеркалам и т.п.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Distri — дистрибутив для обкатки технологий быстрого управления пакетами», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.