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.

  1. Создать контейнерВыберите пресет, и Booster скачает образ и создаст контейнер. Во время работы показывается этап: «Загрузка образа», «Создание контейнера», «Инициализация».
  2. Найти и установить пакетПоиск идёт штатным менеджером контейнера (apt, pacman или dnf). У найденного пакета кнопка «Установить», а когда он стоит, пометка «Установлено».
  3. Установить на хостВыносит программу в меню системы (через distrobox-export). У пакета без значка в меню кнопка называется «Экспортировать команду»: тогда программа становится доступной из терминала хоста. Статус пакета виден в списке: «В меню хоста», «Команда доступна на хосте» или «Только в контейнере».
  4. Убрать с хостаСнимает ярлык из меню. Сама программа остаётся в контейнере.
  5. Остановить и включитьОстановка контейнера убирает его приложения из меню, а при включении ярлыки возвращаются («Возврат ярлыков»).
  6. Обновить контейнерКнопка с подсказкой «Обновить контейнер» обновляет пакеты внутри.
  7. ТерминалКнопка «Терминал» показывает встроенную панель внизу окна с сессией внутри контейнера. Можно открыть и отдельное окно во внешнем терминале.
  8. Удалить пакет или контейнерЕсть кнопки «Удалить пакет из контейнера» и «Удалить контейнер». Перед удалением контейнера можно сохранить рецепт.

Каталог 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, он безопаснее и компактнее.

Документация

Подробный справочник с командами, ключами и разбором типичных проблем: