Как установить и использовать Distrobox на Linux

Как установить и использовать Distrobox на Linux

Как часто вы сталкиваетесь с крутым приложением, которое недоступно для вашего дистрибутива? Вероятно, вы попытаетесь установить его через Brew, Flatpak или Snap, но часто не можете.

Фрагментированный ландшафт пакетов в Linux — это проблема. Некоторые дистрибутивы используют общий, но часто несовместимый формат пакетов; другие используют совершенно иную систему пакетов. Flatpak и Snap попытались решить эту проблему, но все, что они сделали, это создали больше стандартов — соответствующий XKCD. Вместо того, чтобы создавать больше стандартов, нам следует объединить уже существующие стандарты — намек Distrobox.

Программное обеспечение Distrobox создано на основе

Закрыто

Прежде чем объяснять сам Distrobox, вам нужно понять часть программного обеспечения, на котором он основан: Docker и Podman. Docker — это программное обеспечение, которое изолирует процессы в отдельных контейнерах; такие процессы обычно не могут взаимодействовать с системой за пределами контейнера. Контейнеры построены на основе примитивов Linux, таких как пространства имен и группы управления. Но не беспокойтесь о деталях; просто помните, что контейнер изолирует процессы.

Мы называем Docker средой выполнения контейнера. Podman — это еще одна среда выполнения контейнера, которая выглядит и работает точно так же, как Docker, за исключением одного ключевого отличия: Podman (по умолчанию) не запускает контейнеры как root; это важно, как вы скоро поймете. Docker и Podman почти идентичны, поэтому можно следовать руководству для начинающих по Docker и применить почти все к Podman.

Как работает Distrobox?

Как установить и использовать Distrobox на Linux

Список контейнеров Distrobox.

Distrobox стирает границы между дистрибутивами и использует существующие инструменты для установки пакетов кросс-дистрибуции. Distrobox оборачивает выбранную вами среду выполнения контейнера (например, Podman, Docker или Lilypod) для запуска процессов внутри контейнера. Когда вы выполняете команду Distrobox, она делегирует полномочия базовой среде выполнения контейнера.

Но почему? В отличие от Docker, Podman и т. д., Distrobox тесно интегрирует контейнерные процессы с вашей системой; они могут читать ваш домашний каталог, видеть другие процессы и даже общаться с ними. Distrobox заботится о сложной конфигурации контейнера для вас, так что он будет запускать приложения — в контейнере Docker или Podman — без проблем с хостом.

Целью среды выполнения контейнера является изоляция процесса; целью Distrobox является тесная интеграция с минимальной настройкой.

Официальная документация Distrobox разъясняет «тесную интеграцию» с техническими подробностями:

…легко интегрируется с остальной частью операционной системы, предоставляя доступ к домашнему каталогу пользователя, сокетам Wayland и X11, сетевым подключениям, съемным устройствам (например, USB-накопителям), журналу systemd, агенту SSH, D-Bus, ulimits, /dev и базе данных udev и т. д.

Почему я рекомендую Podman, а не Docker

Вам следует использовать Podman в качестве среды выполнения контейнера, поскольку по умолчанию он запускает контейнеры как непривилегированный пользователь, тогда как Docker запускает их как root. Почему это проблема? Контейнеризированные процессы наследуют привилегии своего контейнера — это немного сложнее, но такова общая идея. Distrobox тесно интегрирует контейнеры с хостом; любой процесс, работающий внутри укорененный контейнер может иметь полный доступ к вашей системе.

Distrobox предложит вам установить пароль для контейнера, если вы запустите его как root, что обеспечивает некоторые защита, но это далеко не идеальное решение.

Как установить Podman

Podman доступен как минимум для дюжины дистрибутивов. Следующие команды охватывают наиболее распространенные из них.

Для Debian и его производных (например, Ubuntu, Mint и т. д.):

sudo apt-get установить podman

Для производных Red Hat (например, Fedora и т. д.):

sudo dnf установить podman

Для Arch Linux и его производных:

sudo pacman -S podman

Вы, вероятно, обнаружите, что Podman доступен в репозиториях вашего дистрибутива по умолчанию. Самое главное, чтобы вы настроили его для режим без прав root. К сожалению, для некоторых дистрибутивов может потребоваться ручная настройка. Обратитесь к руководству для вашего дистрибутива, поскольку процесс для каждого из них отличается.

Как установить Distrobox

Distrobox доступен для более чем 30 дистрибутивов, поэтому после установки Podman (или Docker) продолжайте установку Distrobox с помощью менеджера пакетов вашего дистрибутива. Ниже приведены команды установки для наиболее распространенных дистрибутивов.

Для Debian и его производных (например, Ubuntu, Mint и т. д.):

sudo apt-get install distrobox

Для производных Red Hat (например, Fedora и т. д.):

sudo dnf установить дистрибутив

Для Arch Linux и его производных:

sudo pacman -S дистрибутив

Если Distrobox отсутствует в репозитории вашего дистрибутива, вы можете использовать следующую команду curl:

curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh

Такие действия, как завить … | ш может содержать и внедрять вредоносные команды; всегда проверяйте поставщика и просматривайте скрипт.

Как установить и использовать Distrobox на Linux

Теперь вы должны установить Podman как среду выполнения контейнера в файле конфигурации Distrobox. Выполните следующую команду, но будьте осторожны, так как она перезапишет любой существующий файл конфигурации:

echo ‘container_manager=»podman»’ > ~/.distroboxrc

Теперь все готово.

Создание вашего первого контейнера Distrobox

Контейнеры хранят ваши изменения и являются тонким слоем поверх неизменяемых образов. Образы обеспечивают базовую систему дистрибутива. При объединении они обеспечивают полную систему. Ваши установленные пакеты будут находиться внутри контейнера. Distrobox интегрирует домашний каталог контейнера в ваш собственный, так что файлы конфигурации вашего пакета будут находиться там.

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

distrobox создать -n мой-контейнер

Однако на данный момент мы будем использовать Arch Linux:

distrobox create —name my-arch —image archlinux:latest

Как установить и использовать Distrobox на Linux

Как установить и использовать Distrobox на Linux

Вы можете создать контейнер, используя любой образ, например, Debian:

distrobox create —name my-debian —image debian:latest

Или вы можете создать контейнер Fedora:

distrobox create —name my-fedora —image fedora:latest

Не прерывайте процесс создания контейнера, иначе вы можете его повредить, и вам придется создавать его заново.

Distrobox поддерживает более 30 дистрибутивов для контейнеров, каждый из которых поддерживает несколько релизов и версий. Кроме того, если вы знакомы с Toolbox, вы также можете использовать их образы. Distrobox поддерживает большой список имен образов для вашего удобства.

Как установить приложение в контейнер Distrobox

Контейнеры — это среда, которую вы активировать. Все последующие команды выполняются внутри контейнера.

distrobox введите my-arch

Вы можете поиграть с этой системой, чтобы почувствовать ее. Когда закончите, введите выход.

Как установить и использовать Distrobox на Linux

Однако, вместо того, чтобы входить в контейнер для установки пакета, часто лучше запустить одноразовую команду. Здесь мы установим Firefox, что мы выполним немного позже:

distrobox введите my-arch — sudo pacman -S firefox

Как установить и использовать Distrobox на Linux

Если вы создали контейнер для другого дистрибутива, вы, вероятно, можете использовать одну из следующих команд.

Для Debian и его производных (например, Ubuntu, Mint и т. д.):

distrobox введите имя-контейнера — sudo apt-get install firefox

Для производных Red Hat (например, Fedora и т. д.):

distrobox введите имя-контейнера — sudo dnf install firefox

Если у вас возникли трудности с командами установки, вам, вероятно, следует сначала научиться устанавливать и удалять программное обеспечение через терминал.

При использовании Podman sudo просто работает. Rootless Podman запускает контейнеры как непривилегированный пользователь по умолчанию. Все процессы внутри контейнера (включая sudo) не могут получить привилегии выше, чем у самого контейнера. Это защищает вашу хост-систему.

Как установить и использовать Distrobox на Linux

Как запустить приложение в контейнере Distrobox

Чтобы запустить недавно установленный Firefox, выполните:

distrobox введите my-arch — firefox

Как установить и использовать Distrobox на Linux

Предыдущая команда не возвращает управление терминалу, пока Firefox не завершит работу; она также длинная. Вместо этого вам, вероятно, следует использовать псевдоним. В файле конфигурации оболочки введите:

alias firefox=»distrobox введите my-arch — nohup firefox >/dev/null»

Вы можете назвать этот псевдоним как угодно.

Одной из самых полезных функций Distrobox является то, что графические пакеты работают без дополнительной настройки. Он работает как с X11, так и с Wayland. Distrobox также поддерживает ускорение GPU; если это то, что вас интересует, то вам следует обратиться к руководству Distrobox.

Как думать о контейнерах Distrobox

Как упоминалось ранее, контейнеры — это слой поверх образа. Distrobox делится образами между несколькими контейнерами. Например, когда вы создаете контейнер на основе Debian:

distrobox create —имя deb-1 —образ debian:latest

Он снимет образ Debian, использует его как базовую систему, а затем создаст контейнер поверх него. Когда вы создаете еще два контейнера:

distrobox create —имя deb-2 —образ debian:latest
distrobox create —имя deb-3 —образ debian:latest

Закрыто

Оба они будут использовать один и тот же неизменяемый образ Debian, но каждый контейнер отделен друг от друга. Установка пакета в деб-1 означает, что он не будет существовать в деб-2 or деб-3. Однако они будут использовать один и тот же файл конфигурации, который находится в домашнем каталоге вашего хоста.

Вы можете задаться вопросом, следует ли вам создать один контейнер или несколько. Как правило, создавайте по одному контейнеру для каждого используемого вами дистрибутива. Например, в AUR (поддерживаемом сообществом репозитории программного обеспечения для Arch Linux) есть пакет, который вам нужен, поэтому вы создаете контейнер Arch; в репозиториях Debian их три, поэтому вы создаете один контейнер Debian и помещаете в него все три. Однако могут быть сценарии, в которых возникают конфликты программного обеспечения, например, разные версии одного и того же пакета; это идеальный сценарий для создания отдельных контейнеров.

Другие полезные команды Distrobox, которые нужно знать

Самым полезным ресурсом для команд всегда является меню —help:

distrobox —помощь

Вы можете получить справку по конкретным командам, добавив к ним флаг —help. Например, чтобы получить справку по Создайте команда:

distrobox создать —помощь

Закрыто

Создание временных контейнеров

Чтобы быстро что-то протестировать, можно использовать временные контейнеры. Distrobox автоматически уничтожает их после завершения:

эфемерный дистрибутив

Имейте в виду, что они загружаются медленнее, поскольку их необходимо инициализировать — это похоже на создание нового контейнера.

Посмотреть distrobox эфемерный —помощь Для получения дополнительных возможностей.

Управление контейнерами

Вы должны рассматривать контейнеры Distrobox как подсистему; это включает в себя создание, запуск, остановку, удаление, обновление и общее обслуживание контейнеров. Ниже приведен список общих команд, которые помогут вам сделать это.

В какой-то момент вам захочется узнать, какие контейнеры существуют в вашей системе:

дистрибутив ls

Возможно, вы хотите удалить контейнер. Перед тем, как сделать это, вы можете сначала остановить его, а затем удалить:

distrobox остановить мой-контейнер
distrobox rm мой-контейнер

Как установить и использовать Distrobox на Linux

Не обязательно останавливать контейнер перед его удалением, так как Distrobox предложит вам сделать это самостоятельно. сила удалите его, если он запущен.

Вы почти наверняка хотите поддерживать свои контейнеры в актуальном состоянии. Чтобы обновить их ВСЕИспользуйте:

обновление distrobox — все

Или для обновления определенного контейнера:

обновление distrobox my-container

Как установить и использовать Distrobox на Linux

Команда обновления будет использовать менеджер пакетов контейнера для обновления всех его пакетов. Кроме того, каждый контейнер требует регулярных обновлений. При удалении контейнера удаляются и его обновления.

Чтобы удалить пакеты, просто используйте менеджер пакетов, специфичный для дистрибутива для этого конкретного контейнера. Например, если вы хотите удалить Firefox из контейнера Arch Linux, который мы создали ранее, используйте следующее:

distrobox войти в my-arch — sudo pacman -R firefox

Как установить и использовать Distrobox на Linux

Для производных от Red Hat (например, Fedora) используйте:

distrobox введите my-conainer-name — sudo dnf rm firefox

Для Debian и его производных используйте:

distrobox введите имя-контейнера — sudo apt-get удалите firefox

Как удалить Distrobox

Если вам не нравится Distrobox и вы хотите удалить его, ниже приведены команды, которые помогут это сделать.

Если вы использовали curl для установки, то вам Чёрный Для его удаления используйте следующую команду curl:

curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/uninstall | sudo sh

В противном случае для Debian и его производных (например, Ubuntu, Mint и т. д.):

sudo apt-get удалить distrobox

Для производных Red Hat (например, Fedora и т. д.):

sudo dnf rm дистрибутив

Для Arch Linux и его производных:

sudo pacman -R дистрибутив

Одной из сильных сторон Distrobox является тесная интеграция с хостом. В мире Docker это, в некоторой степени, является слабостью, поскольку Docker хочет изолировать процессы; Distrobox хочет их интегрировать — в этом ключевое различие между ними. Также важно понимать разницу между запуском контейнера как root и запуском контейнеризированного процесса как root. Я настоятельно рекомендую Podman, поскольку он работает лучше, чем Docker, как среда выполнения контейнера без root. Сопровождающие Distrobox также согласны.

Обратите внимание на эти два ключевых момента, поскольку они важны для защиты вашей системы. По сути, будьте осторожны при запуске контейнера как root; не запускайте приложения внутри этого контейнера как ограниченная учетная запись — это создает ложное чувство безопасности и может привести к повышению привилегий.

Валентин Павлов/ автор статьи
Страсть Влентина к играм началась с Resident Evil, и с тех пор он не переставал играть в хоррор-игры. Пишет экспертные руководства для самых сложных игр и обзоры для самых громких релизов. Является магистром журналистики и имеет степень бакалавра лингвистики. Любимые игры: GTA 5, Silent Hill 2, Call of Duty: Modern Warfare 2, Heavy Rain, Metro 2033 и другие.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий