Toolbx

Як незмінна система, Fedora Silverblue є ідеальною платформою для розробки програмного забезпечення на основі технологій контейнеризації. Для роботи з контейнерами рекомендуємо скористатися buildah і podman.

Крім того, до складу Fedora Silverblue включено допоміжний засіб toolbx, який використовує контейнери для забезпечення роботи середовища, у якому можна встановити засоби для розробки і бібліотеки і скористатися ними.

Чому слід користуватися toolbx?

Toolbx спрощує використання контейнеризованих середовищ для регулярної розробки програмного забезпечення та діагностування. У незмінних операційних системах, зокрема Fedora Silverblue, він надає доступ до знайомого середовища, яке засновано на пакунках, у якому можна встановлювати інструменти і бібліотеки. Втім, toolbx також можна використовувати і у заснованих на пакунках системах.

Використання Toolbx для робочих процесів із контейнеризацією надає вам декілька переваг:

  • Таким чином можна зберігати базову операційну систему незмінною і стабільною, запобігти захаращенню системи, яке трапляється після встановлення значної кількості інструментів і пакунків для розробки.

  • Ви отримуєте доступ до різних версій підтримуваних дистрибутивів незалежно від версії, з якою ви працюєте.

  • Контейнери — якісний спосіб ізолювати і упорядкувати залежності, які потрібні для різних проєктів.

  • Контейнери є безпечним майданчиком для експериментів: якщо щось піде не так, доволі просто викинути набір інструментів (toolbox) і розпочати все знову.

Втім, дуже важливо зауважити, що контейнери наборів інструментів (toolbx) інтегровано з вашою основною системою, тому вам не слід виконувати дії або запускати програми, які можуть позначитися на основній системі. Контейнери наборів інструментів не є повністю ізольованими середовищами, подібними до віртуальних машин.

Як це працює

Toolbx працює на основі контейнерів, надаючи доступ до вузького набору команд для створення, входу, побудови списку та вилучення контейнерів. Він також інтегрує контейнери toolbx до вашого звичайного робочого середовища з метою спрощення користування ними як регулярним простором для розробки.

Контейнери створюються з образів. Вони є дуже спрощеними версіями дистрибутивів. У таких образах майже немає інструментів та документації. Команда, яка розробляє Toolbx, супроводжує образ Fedora, де такі інструменти і документація є доступними, надаючи чудові можливості одразу після запуску.

Кожен із контейнерів toolbx є середовищем, до якого ви можете увійти з командного рядка. Усередині кожного контейнера ви знайдете:

  • Ваше поточне ім’я користувача і права доступу

  • Доступ до вашого домашнього каталогу та декількох інших місць

  • Доступ до D-Bus системи і сеансу, журналу системи і Kerberos

  • Типові засоби командного рядка, зокрема програму для керування пакунками (наприклад DNF у Fedora)

Іншими словами, контейнери toolbx виглядають, працюють і поводяться подібно до стандартного середовища командного рядка Linux. Поєднуючи усі ці відомості, контейнери toolbx втрачають певну частину захисту, який набувається використанням технології контейнерів. Тому вам не слід вважати контейнери toolbx пісочницями, у яких ви можете виконувати будь-який скрипт, який би ви ніколи не запускали у будь-якій іншій системі.

У більшості випадків, при запуску команди зсередини контейнера буде використано програму з контейнера. Втім, існує декілька спеціалізованих випадків, коли замість неї буде використано програму з основної системи (за допомогою flatpak-spawn). Одним з прикладів є сама команда toolbox; таким чином можна уможливити використання toolbx з контейнерів toolbx.

Встановлення

Fedora Silverblue

Toolbx попередньо встановлено у Fedora Silverblue.

Fedora Workstation

Toolbx можна встановити на Fedora Workstation (або будь-яку засновану на пакунках версію Fedora) за допомогою такої команди:

$ sudo dnf install toolbox

Ваш перший toolbox

Після встановлення toolbx, щоб розпочати роботу, слід віддати дві прості команди:

$ toolbox create

У результаті буде отримано образ OCI і створити з нього контейнер toolbx. Щойно дані буде отримано, віддайте таку команду:

$ toolbox enter

Потрапивши до нутрощів toolbox, ви отримуєте доступ до типових інструментів командного рядка і доступ до встановлення нових інструментів за допомогою програми для керування пакунками (наприклад DNF у Fedora).

Якщо запит щодо команди надходить зсередини toolbox, перед ним буде показано ромб: так система вказує на те, що запит є запитом із середини контейнера toolbx. Символ ромба може бути також показано, якщо ви використовуєте нетипову тему командної оболонки.

Команди і користування

toolbox create [параметри] <назва>

Створює контейнер toolbx. У результаті буде отримано образ OCI, якщо він є недоступним (ця дія потрібна для створення контейнера). Типово, образ за версією збігається із версією основної системи. Якщо основна система не має відповідного образу, замість нього буде використано образ Fedora.

Якщо віддати команду без параметрів, toolbox create автоматично визначить назву створеного контейнера. Для створення додаткових toolbox скористайтеся аргументом <назва>.

Щоб використатися вказану версію основної системи (наприклад, Fedora 32 у Fedora 34), скористайтеся параметром --release <випуск> | -r <випуск>.

Щоб скористатися іншим дистрибутивом для створення контейнера toolbx (наприклад, RHEL у Fedora), скористайтеся параметром --distro <дистрибутив> | -d <дистрибутив>.

Щоб використати інший образ, скористайтеся параметром --image <назва> | -i <назва>.

toolbox enter [параметри] <назва>

Увійти до контейнера toolbox для інтерактивного користування. Якщо команду віддано без параметрів, toolbox enter відкриває типовий контейнер toolbox.

Щоб вказати toolbox із певною назвою, скористайтеся аргументом назва.

Щоб увійти до toolbox для іншого дистрибутива (наприклад, Fedora у RHEL), скористайтеся параметром --distro <дистрибутив> |-d <дистрибутив>.

Щоб увійти до toolbox із визначенням певної версії (наприклад, RHEL 8.1 у RHEL 8.3), скористайтеся параметром --release <випуск> | -r <випуск>.

toolbox run [параметри] <команда> <аргумент …​>

Виконує команду у toolbox, без входу до нього. Якщо команду віддано без параметрів, toolbox run запускає команду у типовому контейнері toolbox.

Щоб запустити програму у toolbox із визначенням певної назви контейнера, скористайтеся параметром --container <назва> | -c <назва>.

Щоб запустити програму у toolbox для іншого дистрибутива (наприклад, Fedora у RHEL), скористайтеся параметром --distro <дистрибутив> |-d <дистрибутив>.

Щоб запустити програму у toolbox із визначенням певної версії (наприклад, RHEL 8.1 у RHEL 8.3), скористайтеся параметром --release <випуск> | -r <випуск>.

toolbox list [параметри]

Виводить список образів і контейнерів toolbx.

Щоб переглянути лише список контейнерів, скористайтеся параметром --containers | -c.

Щоб лише переглянути список образів, скористайтеся параметром --images | -i.

toolbox rm [параметри] <назва …​>

Вилучає один або декілька контейнерів toolbx.

Параметр --force | -f надає змогу вилучити позначені контейнери, навіть якщо їх запущено.

За допомогою параметра --all | -a можна вилучити усі контейнери toolbx.

toolbox rmi [параметри] <назва …​>

Вилучає один або декілька образів toolbx.

Параметр --force | -f надає змогу вилучити позначені образи і усі контейнери, які було створено з використанням позначених образів.

За допомогою параметра -all | -a можна вилучити усі образи toolbx.

toolbox --help

Показує сторінку підручника з Toolbx.

Вихід з toolbox

Щоб повернутися до середовища основної системи, або віддайте команду exit, або вийдіть з поточної оболонки (типово, Ctrl+D).

Під капотом

У toolbx використано такі технології:

Контакти і адреси для сповіщення про вади

Для повідомлень про вади, пропозицій та надсилання латок скористайтеся сторінкою проєкту toolbx на GitHub.

Щоб зв’язатися із користувачами та розробниками toolbx, скористайтеся екземпляром Discourse Fedora або каналом IRC #silverblue на сервері Libera.