DistroBox - запуск любого дистрибутива Linux в терминале Linux
Что же такое Distrobox?
Distrobox - это отличный инструмент, который позволяет создавать и управлять контейнерами на вашем любимом дистрибутиве Linux с помощью Docker или Podman. Запущенный контейнер полностью интегрируется с основной системой, что позволяет совместно использовать каталог HOME пользователя, а также внешние накопители, USB-устройства и графические приложения.
Distrobox основан на образе OCI и реализует концепции, аналогичные ToolBox, который строится на основе podman и стандартных контейнерных технологий OCI.
Самое замечательное в этом то, что вы можете создать среду разработки, не требующую прав root.
Вам не придется менять дистрибутив хоста только из-за проблем с совместимостью программ. Вы можете продолжать использовать то, что вам удобно, и использовать Distrobox для восполнения пробела в совместимости с обратным/прямым программным обеспечением, используя любой другой дистрибутив Linux.
Возможности Distrobox
Давайте рассмотрим основные ключевые моменты Distrobox:
- Возможность создания тестовой среды для внесения изменений, не затрагивающих ваш основной дистрибутив.
- Среда разработки, не требующая привилегий sudo, может быть гибкой для вашей работы. Например, если у вас есть рабочий ноутбук, установка без sudo может помочь вам.
- Простой способ управления несколькими средами.
- Поддержка различных дистрибутивов.
Установка Distrobox
Для установки Distrobox необходимо выполнить предварительное условие, у вас должен быть установлен либо podman, либо docker. Если у вас относительно современный дистрибутив Linux, я рекомендую установить podman из репозиториев программного обеспечения. В противном случае установите docker и следуйте шагам, указанным ниже.
На момент написания этой статьи Distrobox доступен в следующих репозиториях:
- Arch Linux (AUR)
- EPEL 8 и более поздние версии
- Fedora 34 и более поздние версии
- Ubuntu 22.10 и более поздние версии
Я не ошибся, последняя версия Ubuntu, доступная широкой публике на момент написания статьи, это Ubuntu 22.04. Не многие дистрибутивы имеют Distrobox в комплекте…
Если вы не нашли Distrobox в репозиториях, вы можете выполнить следующую команду для установки Distrobox:
$ curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh
Приведенная выше команда загрузит сценарий оболочки и запустит его с привилегиями суперпользователя. Если вы не можете самостоятельно проверить источник, ниже приведена команда, которую можно использовать, не беспокоясь о предоставлении привилегий суперпользователя неизвестному сценарию.
$ curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --prefix ~/.local
Теперь, когда у вас установлен Distrobox, давайте перейдем к нескольким примерам его использования.
Начало работы с Distrobox
Итак, давайте рассмотрим несколько основных команд для использования Distrobox, их назначение и прочее.
1. Создание нового контейнера
Под «контейнером» в данном контексте понимается не контейнерное программное обеспечение, такое как nextcloud, syncthing и т.д., а скорее сама операционная система.
Синтаксис для создания нового контейнера следующий:
$ distrobox-create --name ИМЯ_КОНТЕЙНЕРА --image ИМЯ_ОС:ВЕРСИЯ
Здесь вы можете указать, под каким именем вы хотите использовать контейнер (ИМЯ_КОНТЕЙНЕРА), название ОС, которую вы хотите использовать (ИМЯ_ОС) и ее версию (ВЕРСИЯ).
Давайте рассмотрим, как создать новый контейнер для Fedora 36 с именем 'fedoratest'. Cделаем это с помощью следующей команды:
$ distrobox-create --name fedoratest --image fedora:36
Вы также можете заменить '36' на 'latest', если вам нужна последняя версия какой-либо операционной системы.
Выполнение данной команды займет всего мгновение, и образ контейнера будет загружен для Fedora 36.
После завершения процесса вы получите сообщение о том, что контейнер был создан.
2. Доступ к контейнеру Distrobox
Контейнер ОС бесполезен, если мы не запустим его и не получим доступ к его командной строке.
Для этого используйте команду 'distrobox-enter'. Синтаксис команды следующий:
$ distrobox-enter ИМЯ_КОНТЕЙНЕРА
При первом запуске контейнера, Distrobox выполнит автоматическую начальную настройку: установит ряд контейнеров, настроит соединения, темы, иконки, шрифты, группы, пользователей и многое другое.
В зависимости от вычислительной мощности вашего компьютера, это может занять разное время. Пожалуйста, будьте терпеливы при первом включении, процесс может протекать в течение ~15 минут.
Когда все будет завершено, вы автоматически попадете в оболочку контейнера.
Если вы внимательно посмотрите, то до выполнения команды 'distrobox-enter', имя хоста, отображаемое в подсказке, было 'andrey-pc'. После того, как начальная установка была выполнена, имя хоста стало другим, а именно 'fedoratest'.
Давайте также проверим VERSION из файла '/etc/os-release'.
3. Установка программ
Если вы дошли до этой стадии, это эквивалентно тому, что вы только что установили Fedora на свой компьютер и ОС только что загрузилась.
Как и в случае с виртуальной машиной, ОС на нашей хост-машине не имеет значения. Мы должны использовать менеджер пакетов, предоставляемый гостевой ОС. Поэтому я буду использовать менеджер пакетов DNF на Fedora 36.
Моя хост-операционная система, EndeavourOS, пока не имеет PokerTH в основных репозиториях. Но Fedora 36 имеет PokerTH в основных репозиториях. Таким образом, я могу легко установить PokerTH как родное программное обеспечение без использования тяжелой виртуализации.
Итак, давайте установим PokerTH, поскольку он доступен в репозиториях Fedora, но не в репозиториях EndeavourOS.
Я выполню следующую команду (внутри оболочки контейнера) для установки PokerTH:
$ sudo dnf install pokerth
После того как dnf завершит установку PokerTH, выполним следующую команду (внутри оболочки контейнера):
$ distrobox-export --app pokerth
Когда вы выполняете команду 'distrobox-export' из контейнера, это делает указанное программное обеспечение доступным и для основной операционной системы. Это означает, что даже если PokerTH установлен внутри контейнера Fedora, я смогу увидеть его в меню приложений EndeavourOS.
Как вы видетe, у меня PokerTH виден в меню приложений EndeavourOS, несмотря на то, что он был установлен в контейнере Fedora 36.
4. Управление образами Distrobox
Distobox предоставляет несколько команд, которые можно использовать для управления образами Distrobox.
Первая команда - 'distrobox list'. Как видно из названия, она выводит список всех установленных контейнеров.
Вторая команда - 'distrobox stop'. Эта команда используется для остановки запущенного контейнера.
Ниже приведен синтаксис:
$ distrobox stop ИМЯ_КОНТЕЙНЕРА
Наконец, чтобы удалить любой контейнер Distrobox, используйте команду 'distrobox rm'. Синтаксис приведен ниже:
$ distrobox rm ИМЯ_КОНТЕЙНЕРА
Чтобы узнать больше технических деталей, посетите страницу Distrobox на GitHub.
Заключение
Distrobox - это замечательный инструмент, который позволяет устанавливать операционные системы как простой контейнер podman/docker и использовать их как полноценную операционную систему.
С помощью Distrobox вы можете установить практически любое программное обеспечение, даже если оно недоступно в репозиториях вашего дистрибутива или даже если оно не упаковано для вашего дистрибутива Linux.