Установка и использование Distrobox в Linux
Linux-дистрибутивы предлагают множество пакетов, но иногда нужное приложение просто недоступно в вашей системе. Flatpak и Snap пытались решить проблему фрагментации, но лишь добавили новых стандартов. Вместо этого можно использовать Distrobox — инструмент, который позволяет запускать пакеты из любого дистрибутива в контейнерах, тесно интегрированных с вашей системой.
Distrobox использует контейнерные технологии (Docker, Podman или Lilypod), но в отличие от них, обеспечивает плотную интеграцию с хост-системой. Контейнеры получают доступ к домашнему каталогу, графическим сокетам (X11/Wayland), сети и другим системным ресурсам. Это позволяет запускать приложения из других дистрибутивов так, будто они установлены нативно.
Почему лучше использовать Podman вместо Docker?
Podman по умолчанию запускает контейнеры от непривилегированного пользователя, тогда как Docker делает это от root. Поскольку Distrobox тесно связывает контейнеры с системой, root-контейнеры могут представлять угрозу безопасности. Podman минимизирует риски.
Установка Podman и Distrobox
Podman доступен в большинстве дистрибутивов:
- Debian/Ubuntu:
sudo apt-get install podman
- Fedora:
sudo dnf install podman
- Arch Linux:
sudo pacman -S podman
После этого устанавливаем Distrobox:
- Debian/Ubuntu:
sudo apt-get install distrobox
- Fedora:
sudo dnf install distrobox
- Arch Linux:
sudo pacman -S distrobox
Если Distrobox нет в репозиториях, можно установить его через curl (но будьте осторожны с такими командами):
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh
Затем указываем Podman в конфигурации Distrobox:
echo 'container_manager='podman'' > ~/.distroboxrc
Создание контейнера
Пример создания контейнера на основе Arch Linux:
distrobox create --name my-arch --image archlinux:latest
Можно использовать любой другой образ (Debian, Fedora и т. д.). Полный список поддерживаемых дистрибутивов есть в документации.
Установка и запуск приложений
Чтобы установить Firefox в Arch-контейнере:
distrobox enter my-arch -- sudo pacman -S firefox
Для запуска:
distrobox enter my-arch -- firefox
Можно создать алиас для удобства:
alias firefox='distrobox enter my-arch -- nohup firefox >/dev/null'
Управление контейнерами
- Список контейнеров:
distrobox ls
- Удаление:
distrobox rm my-container
- Обновление всех контейнеров:
distrobox upgrade --all
Безопасность и рекомендации
Distrobox интегрирует контейнеры с системой, поэтому важно:
- Использовать Podman вместо Docker.
- Не запускать контейнеры от root без необходимости.
- Обновлять контейнеры регулярно.
Distrobox — мощный инструмент, который ломает границы между дистрибутивами, но требует аккуратного обращения.