Git

Distrobox

Distrobox запускает внутри контейнера пользовательское окружение другого дистрибутива: его пакеты, библиотеки и менеджер пакетов. Контейнер использует вашу домашнюю папку, графический сеанс и звук, а приложения можно вынести в меню системы. Ядра у контейнера нет, оно общее с хостом, а системные службы внутри обычно не работают.

Короткий рассказ есть на странице сайта, а здесь справочник.

Distrobox и изоляция#

Настоящая песочница это Flatpak. Distrobox это контейнер со своими пакетами и файловой системой, но с общей домашней папкой, поэтому он не защита от вредоносных программ. Свою задачу, чистую систему без сборочного мусора, он выполняет полностью.

Вкладка Distrobox в Atomic Booster#

Контейнеры, которыми управляет Atomic Booster, называются ab-<пресет>. Образ берётся только из пресета.

ПресетДистрибутив
ArchArch Linux (пакеты через pacman)
DebianDebian
Ubuntu LTSUbuntu LTS
FedoraFedora
ALT p11ALT Linux p11
ALT SisyphusALT Linux Sisyphus
eepmкаталог eepm (ALT Sisyphus), см. ниже

Работа с контейнером#

  • Создать: Booster скачивает образ, создаёт и инициализирует контейнер. Для загрузки образа нужен интернет.
  • Остановить контейнер: его приложения убираются из меню системы. При включении ярлыки возвращаются.
  • Включить остановленный контейнер.
  • Обновить контейнер: обновление пакетов внутри.
  • Удалить контейнер: перед этим можно сохранить рецепт.
  • Терминал: переключатель в шапке контейнера показывает встроенную панель внизу окна с сессией distrobox enter. Высота панели 260 пикселей, прокрутка 10000 строк, копирование Ctrl+Shift+C, вставка Ctrl+Shift+V. Пункт «Открыть во внешнем терминале» запускает первый найденный терминал (kitty, foot, gnome-terminal, konsole, alacritty, xterm).

Пакеты и вынос в меню#

  1. Введите имя пакета в поиск. Поиск идёт штатным менеджером контейнера: apt в ALT и Debian, pacman в Arch, dnf в Fedora.
  2. Нажмите «Установить».
  3. Нажмите «Установить на хост»: Booster выносит приложение в меню системы через distrobox-export. Если у пакета нет значка в меню, кнопка называется «Экспортировать команду», и тогда программа доступна из терминала хоста.
  4. «Убрать с хоста» снимает ярлык.

Статус каждого пакета виден в списке: «В меню хоста», «Команда доступна на хосте», «Только в контейнере» или «Нет приложения для меню». Установленное и экспорты ведёт реестр состояния Booster.

Кнопка «Удалить пакет из контейнера» убирает пакет.

Каталог eepm#

Контейнер ab-eepm (образ ALT Sisyphus, около 2 ГБ) с менеджером eepm. Команда epm play ставит приложения с сайтов производителей. Каталог кэшируется в ~/.cache/atomic-booster/eepm-catalog.json на 24 часа, а список установленного читается из контейнера при каждом открытии.

В мастере первой настройки этот контейнер можно создать в фоне. Приложения каталога появляются в меню как обычные, а на вкладке Capsules из этого же каталога можно собрать капсулу.

Что делает Booster в контейнере:

sudo -n env DEBIAN_FRONTEND=noninteractive TERM=dumb apt-get install -y eepm curl epm play --list-all # каталог epm play --list-installed # установленное sudo -n env TERM=dumb epm play --auto ПРИЛОЖЕНИЕ sudo -n env TERM=dumb epm play --auto --remove ПРИЛОЖЕНИЕ

Рецепты и перенос#

ДействиеЧто получится
Экспортировать рецептJSON-файл: пресет, пакеты и приложения eepm с отметкой «на хосте». Образ не сохраняется
Экспорт контейнераархив <контейнер>-<дата>.tar.zst: система контейнера и установленные пакеты. Домашняя папка в архив не попадает
Импортпо расширению: .recipe.json восстанавливает рецепт, .tar.zst создаёт контейнер из архива без загрузки образа

Перед экспортом контейнера показывается его размер (виртуальный) и свободное место у назначения. Если места меньше, чем 1,2 размера, нужно подтвердить явно. Существующий контейнер при импорте не перезаписывается. Сохранённые рецепты перечислены на главном виде вкладки с размером файла и кнопками «Восстановить» и «Удалить».

Из терминала#

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 ИМЯ-ПРОГРАММЫ distrobox-export --bin /usr/bin/утилита distrobox-export --list-apps

Через APM:

apm distrobox c create --image alt --name dev apm distrobox c create-manual --image ubuntu --name dev-ubuntu --additional-packages build-essential,git apm distrobox install -c dev ПАКЕТ # установить с автоматическим выносом ярлыка apm distrobox c rm --name dev # удалить контейнер вместе с выведенными ярлыками

Открыть вкладку из терминала: atomicbooster-vala --distrobox.

Типичные проблемы#

ПроблемаЧто делать
Контейнер не создаётсяНужен интернет для загрузки образа. Проверьте место на диске и вкладку Podman
Приложение пропало из менюКонтейнер остановлен: включите его, ярлыки вернутся
Нет места на дискеОчистите ненужные образы умной очисткой на вкладке Podman и удалите лишние контейнеры
Нужна служба (systemd) внутриКонтейнеры Distrobox обычно её не запускают. Нужна виртуальная машина

Смотрите также: установка программ, Podman, капсулы.