Опубликован Distrobox 1.6, инструментарии для вложенного запуска дистрибутивов

Опубликован инструментарий Distrobox 1.6, позволяющий быстро установить и запустить в контейнере любой дистрибутив Linux и обеспечить его интеграцию с основной системой. Код проекта написан на Shell и распространяется под лицензией GPLv3.

Проект предоставляет надстройку над Docker, Podman или Lilipod, и отличается максимальным упрощением работы и интеграции запущенного окружения с остальной системой. Для создания окружения с другим дистрибутивом достаточно выполнить одну команду distrobox-create, не задумываясь о тонкостях. После запуска Distrobox обеспечивает проброс домашнего каталога пользователя в контейнер, настраивает доступ к серверу X11 и Wayland для выполнения из контейнера графических приложений, позволяет подключать внешние накопители, добавляет вывод звука, реализует интеграцию на уровне SSH-агента, D-Bus и udev.

В Distrobox заявлена возможность использования в качестве хост-системы 25 дистрибутивов, включая Alpine, Manjaro, Gentoo, EndlessOS, NixOS, Void, Arch, SUSE, Ubuntu, Debian, RHEL и Fedora. В контейнере может быть запущен любой дистрибутив для которого имеются образы в формате OCI. После установки пользователь может полноценно работать в другом дистрибутиве не покидая основную систему.

Из основных областей применения называются эксперименты с атомарно обновляемыми дистрибутивами, такими как Endless OS, Fedora Silverblue, OpenSUSE MicroOS и SteamOS3, создание отдельных изолированных окружений (например, для запуска домашней конфигурации на рабочем ноутбуке), доступ к более свежим версиям приложений из экспериментальных веток дистрибутивов.

В новом выпуске:

  • Добавлена поддержка инструментария для управления изолированными контейнерами lilipod, развиваемого автором Distrobox. Инструментарий позволяет загружать и распаковывать образы контейнеров в формате OCI из различных репозиториев, управлять образами, а также создавать и запускать контейнеры из полученных образов. Интерфейс командной строки lilipod по возможности приближен к Podman, Docker и Nerdctl, но отличается ориентацией на простоту и минималистичность (поддерживаются только самые необходимые функции).

    Контейнеры создаются для запуска под отдельным пользователем с изоляцией файловой системы при помощи пространств имён точек монтирования (опционально можно использовать пространства имён network, pid и ipc). Дополнительные ограничения, выставляемые через seccomp, capabilities и cgroups, не поддерживаются. Lilipod позиционируется как встроенный запасной инструментарий для Distrobox, применяемый когда в системе отсутствуют более функциональные менеджеры контейнеров. Инструментарий собирается с использованием статического связывания и не привязан к внешним зависимостям.

  • Улучшена интеграция с технологиями NVIDIA, такими как CUDA.
  • Улучшен процесс инициализации.
  • Улучшена работа с командной оболочкой пользователя внутри контейнера.
  • В контейнерах с правами root обеспечена корректная настройка пароля пользователя для выполнения утилиты sudo.
  • Улучшена поддержка контейнеров с собственной системой инициализации (initful). Добавлена возможность использования системы инициализации
    OpenRC. Предоставлена поддержка пользовательских сеансов на базе systemd.
  • В команду «distrobox create» добавлены новые опции
    «—unshare-all», «—unshare-netns», «—unshare-process» и «—unshare-devsys».

  • Предоставлена возможность использования контейнеров, запускаемых в режимах initful и unshare-all, в окружениях на базе LXC и Libvirt.
  • Добавлен параметр конфигурации container_additional_volumes для указания применяемых в контейнерах точек монтирования.
  • Предоставлена возможность запуска экспортированных бинарных файлов в разных окружениях DistroBox.
  • В команде «distrobox assemble» реализована поддержка всех опций команды «distrobox create». Реализована возможность экспорта приложений и бинарных файлов напрямую из манифеста.
  • Решены проблемы с выставлением часового пояса.

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