Distrobox: окружение другого дистрибутива
Ставьте программы из Arch, Ubuntu, Debian, Fedora или ALT и запускайте их как обычные. Сборочный мусор остаётся в контейнере и не засоряет систему.
Что это
Distrobox запускает внутри контейнера пользовательское окружение другого дистрибутива Linux (в ALT Atomic на основе Podman): его пакеты, библиотеки и менеджер пакетов. Контейнер использует вашу домашнюю папку, графический сеанс и звук, поэтому программы внутри работают как родные. Но их пакеты, зависимости и кэши лежат в контейнере, а не в системе.
Чем это не является. Это не виртуальная машина и не отдельная операционная система. У контейнера нет своего ядра: оно общее с хостом. Нет и собственной загрузки с системой инициализации, поэтому системные службы (то, что запускается через systemd) обычно внутри не работают. Для запуска приложений и разработки этого достаточно, а для полноценной «второй системы» нужна виртуальная машина.
Любой дистрибутив
Окружение Arch, Debian, Ubuntu LTS, Fedora, ALT p11 и Sisyphus. В каждом работает его менеджер пакетов.
Как нативные
Программу из контейнера можно вынести в меню системы: она запускается одним кликом, как будто стоит на хосте.
Система остаётся чистой
Нужна сборка из исходников, десятки зависимостей, пробные версии: всё в контейнере. Не понравилось: выбросили контейнер целиком.
Общая домашняя папка
Ваши файлы и настройки доступны внутри. Это удобно, но об изоляции читайте ниже.
Зачем это в ALT Atomic
Корень системы неизменяемый, поэтому apt install «как раньше» не работает. Для программ, которых нет во Flatpak, и для разработки есть Distrobox:
- нужна программа или инструмент из репозиториев Arch, Debian, Ubuntu или Fedora;
- нужна среда разработки со своим компилятором и библиотеками:
gcc,python,nodejsи так далее; - вы хотите попробовать пакет из Sisyphus, не меняя систему;
- нужно приложение с сайта производителя, которое ставится через
epm play(см. ниже).
Об изоляции. Настоящая песочница это Flatpak. Distrobox это контейнер со своими пакетами и файловой системой, но с общей домашней папкой по умолчанию, поэтому он не защита от вредоносных программ. Своё назначение, чистая система, он выполняет полностью.
Как пользоваться в Atomic Booster
Вкладка «Distrobox» в Atomic Booster управляет контейнерами с именами вида ab-имя. Образ берётся из готового пресета: Arch, Debian, Ubuntu LTS, Fedora, ALT p11 или ALT Sisyphus.
- Создать контейнерВыберите пресет, и Booster скачает образ и создаст контейнер. Во время работы показывается этап: «Загрузка образа», «Создание контейнера», «Инициализация».
- Найти и установить пакетПоиск идёт штатным менеджером контейнера (
apt,pacmanилиdnf). У найденного пакета кнопка «Установить», а когда он стоит, пометка «Установлено». - Установить на хостВыносит программу в меню системы (через
distrobox-export). У пакета без значка в меню кнопка называется «Экспортировать команду»: тогда программа становится доступной из терминала хоста. Статус пакета виден в списке: «В меню хоста», «Команда доступна на хосте» или «Только в контейнере». - Убрать с хостаСнимает ярлык из меню. Сама программа остаётся в контейнере.
- Остановить и включитьОстановка контейнера убирает его приложения из меню, а при включении ярлыки возвращаются («Возврат ярлыков»).
- Обновить контейнерКнопка с подсказкой «Обновить контейнер» обновляет пакеты внутри.
- ТерминалКнопка «Терминал» показывает встроенную панель внизу окна с сессией внутри контейнера. Можно открыть и отдельное окно во внешнем терминале.
- Удалить пакет или контейнерЕсть кнопки «Удалить пакет из контейнера» и «Удалить контейнер». Перед удалением контейнера можно сохранить рецепт.
Каталог eepm: приложения с сайтов производителей
Отдельный контейнер ab-eepm (образ ALT Sisyphus, около 2 ГБ) с менеджером eepm. Его команда epm play ставит приложения прямо с сайтов производителей: браузеры, мессенджеры, офисные пакеты и сотни других программ. Каталог показывается в Booster списком, установка в один клик.
- Контейнер создаётся в фоне после мастера первой настройки, если вы выбрали этот вариант.
- Приложения каталога появляются в меню как обычные.
- Контейнер можно остановить, убрать из меню или удалить целиком. Хост остаётся чистым.
Рецепты и перенос контейнера
- Экспортировать рецепт сохраняет в файл описание контейнера: пресет, пакеты и приложения eepm с отметкой «на хосте». Сам образ не сохраняется, зато рецептом можно восстановить контейнер на другой машине.
- Экспорт контейнера упаковывает контейнер и установленные пакеты в один архив
контейнер-дата.tar.zst. Домашняя папка в архив не попадает, она общая с хостом. Перед экспортом Booster показывает размер и свободное место, а при нехватке просит подтверждение. - Импорт по расширению выбирает действие:
.recipe.jsonвосстанавливает рецепт,.tar.zstсоздаёт контейнер из архива без загрузки образа. Существующие контейнеры не перезаписываются.
Рецепты и архивы хранятся там, куда вы их сохранили, а сохранённые рецепты перечислены на главном виде вкладки: «Восстановить» и «Удалить» работают прямо из списка.
Из терминала
distrobox create --name dev --image registry.altlinux.org/alt/alt:sisyphus
distrobox enter dev
distrobox list
distrobox stop dev
distrobox upgrade devВынести программу в меню системы изнутри контейнера:
distrobox-export --app имя-программыТо же через APM: apm distrobox c create --image alt --name dev создаёт контейнер, apm distrobox install -c dev пакет ставит пакет с автоматическим выносом ярлыка.
Советы
- Один контейнер на задачу: так проще понять, что откуда взялось.
- Не храните важные данные внутри контейнера, а работайте в домашней папке: контейнер можно выбросить в любой момент.
- Если место закончилось, смотрите вкладку Podman: там умная очистка старых образов.
- Для обычных графических программ сначала ищите Flatpak, он безопаснее и компактнее.
Документация
Подробный справочник с командами, ключами и разбором типичных проблем: