Опубликован инструментарий 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 для указания применяемых в контейнерах точек монтирования.
- Предоставлена возможность запуска экспортированных бинарных файлов
в разных окружениях ВistroBox. - В команде “distrobox assemble” реализована поддержка всех опций команды “distrobox create”. Реализована возможность экспорта приложений и бинарных файлов напрямую из манифеста.