Toolbox

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

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

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

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

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

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

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

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

Як це працює

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

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

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

  • Доступ до вашого домашнього каталогу

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

Іншими словами, контейнери toolbox виглядають, працюють і поводяться як стандартне середовище командного рядка Linux.

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

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

Fedora Silverblue

Toolbox вже встановлено у Fedora Silverblue 30 і новіших версіях. У старіших версіях встановити toolbox можна такою командою:

$ rpm-ostree install toolbox

У результаті буде встановлено toolbox як нашарований RPM.

Fedora Workstation

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

$ sudo dnf install toolbox

Ваш перший toolbox

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

$ toolbox create

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

$ toolbox enter

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

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

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

toolbox create [--container <назва>]

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

toolbox enter [--container <назва>]

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

toolbox run [--container <назва>] <команда> <аргумент …​>

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

toolbox list

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

toolbox rm [--force] <назва>

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

toolbox rmi [--force] <назва>

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

toolbox --help

Виводить список доступних команд.

Вихід з toolbox

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

Під капотом

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

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

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

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