Современная разработка под Linux вышла за рамки традиционного подхода, при котором все устанавливается непосредственно в вашей системе. Теперь у вас есть доступ к инструментам, которые помогают создавать изолированные среды разработки без необходимости использовать полноценные виртуальные машины или сталкиваться со сложностями ручного управления контейнерами.
Именно здесь на сцену выходит Fedora Toolbx — инструмент, который позволяет легко создавать контейнерные среды разработки, при этом работа с ними не отличается от работы непосредственно в вашей операционной системе.
Из этого руководства вы узнаете, как настроить и использовать Fedora Toolbx для создания изолированных, воспроизводимых и простых в управлении сред разработки. Вы узнаете, как Toolbx помогает работать над несколькими проектами с конфликтующими зависимостями, сохраняя при этом чистоту и порядок в базовой системе.
В этом руководстве вы познакомитесь с основами Toolbx с помощью простых и практичных объяснений. Сначала вы узнаете, что такое Toolbx и зачем он нужен, а затем перейдёте к установке и настройке в вашей системе Fedora. После этого вы создадите свой первый контейнер для разработки и поймёте, как эффективно управлять несколькими средами.
В заключительных разделах представлены распространённые рабочие процессы и лучшие практики, которые помогут вам максимально эффективно использовать Toolbx в повседневной работе над проектами.
Что нужно знать о Toolbx: чем он отличается от других
Прежде чем начать работать с Toolbx, важно понять, что он собой представляет и зачем он нужен в вашем рабочем процессе разработки.
Toolbx создает контейнерные среды с помощью Podman, который представляет собой контейнерный движок, похожий на Docker, но работающий без демона.
Toolbx выделяется тем, насколько тесно он интегрирует эти контейнеры с вашей операционной системой, обеспечивая удобство разработки без ограничений, присущих традиционным контейнерам.
Работая с контейнерами Toolbx, вы получаете ряд ключевых преимуществ, которые упрощают процесс разработки:
- Беспрепятственный доступ к домашнему каталогу — ваш домашний каталог автоматически монтируется в контейнер, а это значит, что ваши файлы, конфигурации и SSH-ключи сразу становятся доступными без дополнительной настройки.
- Прямой доступ к оборудованию — графика, аудио и другие устройства работают «из коробки», без специальной настройки или сложных процедур монтирования.
- Интеграция с хостом — вы можете запускать графические приложения, получать доступ к сети и взаимодействовать с системой так, как если бы вы работали непосредственно на хост-системе, а не внутри контейнера.
Вы можете представить, что Toolbx создаёт защищённый «пузырь» вокруг ваших инструментов для разработки и зависимостей. Внутри этого пузыря вы можете устанавливать любые пакеты, библиотеки или инструменты, необходимые для конкретного проекта, не затрагивая основную систему.
В следующих разделах вы узнаете, как установить Toolbx в вашей системе Fedora и начать создавать изолированные среды разработки.
Установка Toolbx в Fedora
В Fedora Workstation (версия 28 и выше) toolbx предустановлен, и вы можете убедиться в этом, выполнив следующую команду.
toolbox --version
Если вы видите номер версии, значит, всё готово. Если Toolbx не установлен, вы можете добавить его с помощью:
sudo dnf install toolbox
Вот и всё, что нужно для установки. Никаких сложных файлов конфигурации, настройки демона или дополнительных зависимостей, о которых нужно беспокоиться.
Создание вашего первого контейнера Toolbx
Создание контейнера Toolbx — это простой процесс, который можно выполнить всего одной командой. Она создаст контейнер по умолчанию на основе вашей текущей версии Fedora.
Например, если вы используете Fedora 41, она автоматически создаст для вас контейнер Fedora 41. При первом запуске этой команды Toolbx загружает образ контейнера, что занимает несколько минут в зависимости от скорости вашего интернет-соединения.
toolbox create
После создания контейнера вы можете войти в него, выполнив следующую команду:
toolbox enter
Вы заметите небольшой значок контейнера (⬢), который появляется в подсказке и указывает на то, что вы находитесь внутри контейнера Toolbx.
Несмотря на то, что вы работаете в контейнерной среде, вы обнаружите, что ваш домашний каталог, файлы и большая часть среды вашей хост-системы остаются доступными, как и в основной системе.
Использование разных версий Fedora
Иногда вам нужно работать с определенной версией Fedora. Возможно, на ваших рабочих серверах установлена более старая версия или вы хотите проверить совместимость с последней версией перед обновлением основной системы.
Toolbx упрощает эту задачу с помощью флага --release или -r:
toolbox create --release 39 fedora39-container toolbox create --release 41 testing-fedora41
Вы даже можете использовать контейнеры из более старых версий Fedora, запустив более новую версию в своей основной системе. Это удобный способ обеспечить совместимость с различными средами.
Проверка среды контейнера
Чтобы убедиться, что вы действительно находитесь внутри контейнера, и увидеть, чем он отличается от вашей хост-системы, вы можете выполнить несколько простых команд, например проверить, какие пакеты установлены.
dnf list installed | wc -l
Вы также можете проверить имя хоста контейнера:
hostname
Чтобы увидеть текущий рабочий каталог и убедиться, что домашний каталог доступен:
pwd ls -la
Вы заметите, что находитесь в своём домашнем каталоге, где видны все привычные файлы и папки, даже несмотря на то, что вы находитесь внутри контейнера.
Установка программного обеспечения в контейнере
Теперь, когда вы находитесь внутри контейнера, вы можете установить инструменты для разработки, не затрагивая систему хоста. Например, если вы хотите настроить среду разработки Python:
sudo dnf install python3-pip python3-virtualenv git vim -y
Если вы выйдете из контейнера и проверите систему хоста, то увидите, что эти пакеты там не установлены. Они существуют только в вашей среде Toolbx.
Давайте рассмотрим ещё один пример с инструментами разработки Node.js.
sudo dnf install nodejs npm -y node --version npm --version
Эти команды устанавливают Node. js и npm, а затем проверяют установку, сверяя их версии. Опять же, эта установка полностью изолирована от вашей основной системы.
Когда вы закончите работу в контейнере, вы можете выйти из него, просто выполнив команду:
exit
Создание именованных контейнеров для разных проектов
Хотя контейнер по умолчанию отлично подходит для общей разработки, вам часто будут нужны отдельные контейнеры для разных проектов или конкретных целей. Создание именованных контейнеров поможет вам более эффективно организовать среду разработки и обеспечить изоляцию вашей работы.
Чтобы создать именованный контейнер, выполните команду toolbox create и укажите имя, которое вы хотите присвоить контейнеру:
toolbox create python-dev toolbox create nodejs-project toolbox create rust-experiments
Каждая из этих команд создаёт отдельный контейнер с собственной изолированной средой. Если вы хотите работать над конкретным проектом, вы входите в соответствующий контейнер, указав его имя с помощью команды enter:
toolbox enter python-dev
Такой подход позволяет поддерживать полностью изолированные среды для разных типов разработки. Например, в вашем контейнере Python может работать Python 3.12 со всеми современными зависимостями, а в контейнере с устаревшим проектом может использоваться Python 3.8 со старыми библиотеками, и ни одна из этих сред не будет мешать другой или каким-либо образом влиять на вашу хост-систему.
Запуск графических приложений из Toolbx
Что делает Toolbx по-настоящему особенным, так это его способность беспрепятственно запускать графические приложения внутри ваших контейнеров. В отличие от традиционных контейнеров, которые требуют сложной настройки и конфигурации X11 переадресации.
Toolbx автоматически интегрирует отображение, создавая впечатление, что вы запускаете приложения непосредственно в своей основной системе.
Чтобы увидеть, как это работает на практике, давайте установим и запустим графический текстовый редактор в качестве примера.
toolbox enter sudo dnf install gedit -y
После завершения установки вы можете запустить редактор.
gedit &
Окно gedit открывается на вашем рабочем столе, как если бы вы запустили его из своей основной системы. Вы можете создавать, редактировать и сохранять файлы, и всё работает именно так, как вы ожидаете.
Амперсанд (&) в конце запускает приложение в фоновом режиме, позволяя вам продолжать работать в терминале, пока графическое приложение остаётся открытым.
Управление несколькими контейнерами Toolbx
По мере создания новых контейнеров для различных проектов вам понадобится способ их отслеживания и эффективного управления ими. Toolbx предоставляет несколько команд, которые помогают просматривать, контролировать и упорядочивать контейнерные среды.
Список ваших контейнеров
Чтобы просмотреть все созданные вами контейнеры, выполните команду list:
toolbox list
Из этого вывода вы можете узнать, какие контейнеры запущены в данный момент, а какие завершили работу.
Проверка сведений о контейнере
Если вам нужна более подробная информация о конкретном контейнере, вы можете использовать Podman напрямую, поскольку контейнеры Toolbx являются обычными контейнерами Podman:
podman ps -a
Вы также можете проверить конкретный контейнер, чтобы увидеть его полную конфигурацию:
podman inspect python-dev
Остановка и запуск работающих контейнеров
Когда вы заканчиваете работу в контейнере и хотите освободить системные ресурсы, вы можете остановить его вручную.
podman stop python-dev
Чтобы убедиться, что контейнер остановлен, снова выполните команду list:
toolbox list
Вы увидите, что статус контейнера изменился с «работает» на «завершил работу».
Если у вас есть контейнер, который в данный момент остановлен, и вы хотите использовать его снова, просто enter его, и Toolbx автоматически запустит его для вас:
toolbox enter python-dev
Удаление контейнеров, которые вам больше не нужны
Со временем у вас может накопиться множество контейнеров, которые вы больше не используете, и эти контейнеры будут занимать место на диске вашей системы. Если вы уверены, что контейнер вам больше не нужен, вы можете полностью удалить его с помощью команды rm:
toolbox rm python-dev
Перед удалением контейнера Toolbx попросит вас подтвердить действие. Просто введите y для подтверждения, и Toolbx удалит контейнер вместе со всеми установленными в нём пакетами и конфигурациями.
Важное примечание: при удалении контейнера удаляются все пакеты, системные конфигурации и любые данные, хранящиеся в файловой системе контейнера, но файлы вашего домашнего каталога остаются в полной безопасности.
После удаления вы можете проверить использование диска всеми вашими контейнерами, образами и томами с помощью команды:
podman system df
Если вы хотите освободить место на диске, удалив все остановленные контейнеры и неиспользуемые образы, вы можете выполнить команду очистки:
podman system prune
Заключение
Toolbx предоставляет мощный инструмент для управления средами разработки в вашей системе Fedora без использования традиционных виртуальных машин.
Из этого руководства вы узнали, как создавать изолированные контейнеры, запускать графические приложения и управлять несколькими средами разработки, сохраняя при этом чистоту базовой системы.