Distrobox
Distrobox запускает внутри контейнера пользовательское окружение другого дистрибутива: его пакеты, библиотеки и менеджер пакетов. Контейнер использует вашу домашнюю папку, графический сеанс и звук, а приложения можно вынести в меню системы. Ядра у контейнера нет, оно общее с хостом, а системные службы внутри обычно не работают.
Короткий рассказ есть на странице сайта, а здесь справочник.
Distrobox и изоляция#
Настоящая песочница это Flatpak. Distrobox это контейнер со своими пакетами и файловой системой, но с общей домашней папкой, поэтому он не защита от вредоносных программ. Свою задачу, чистую систему без сборочного мусора, он выполняет полностью.
Вкладка Distrobox в Atomic Booster#
Контейнеры, которыми управляет Atomic Booster, называются ab-<пресет>. Образ берётся только из пресета.
| Пресет | Дистрибутив |
|---|---|
| Arch | Arch Linux (пакеты через pacman) |
| Debian | Debian |
| Ubuntu LTS | Ubuntu LTS |
| Fedora | Fedora |
| ALT p11 | ALT Linux p11 |
| ALT Sisyphus | ALT Linux Sisyphus |
| eepm | каталог eepm (ALT Sisyphus), см. ниже |
Работа с контейнером#
- Создать: Booster скачивает образ, создаёт и инициализирует контейнер. Для загрузки образа нужен интернет.
- Остановить контейнер: его приложения убираются из меню системы. При включении ярлыки возвращаются.
- Включить остановленный контейнер.
- Обновить контейнер: обновление пакетов внутри.
- Удалить контейнер: перед этим можно сохранить рецепт.
- Терминал: переключатель в шапке контейнера показывает встроенную панель внизу окна с сессией
distrobox enter. Высота панели 260 пикселей, прокрутка 10000 строк, копированиеCtrl+Shift+C, вставкаCtrl+Shift+V. Пункт «Открыть во внешнем терминале» запускает первый найденный терминал (kitty, foot, gnome-terminal, konsole, alacritty, xterm).
Пакеты и вынос в меню#
- Введите имя пакета в поиск. Поиск идёт штатным менеджером контейнера:
aptв ALT и Debian,pacmanв Arch,dnfв Fedora. - Нажмите «Установить».
- Нажмите «Установить на хост»: Booster выносит приложение в меню системы через
distrobox-export. Если у пакета нет значка в меню, кнопка называется «Экспортировать команду», и тогда программа доступна из терминала хоста. - «Убрать с хоста» снимает ярлык.
Статус каждого пакета виден в списке: «В меню хоста», «Команда доступна на хосте», «Только в контейнере» или «Нет приложения для меню». Установленное и экспорты ведёт реестр состояния 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, капсулы.