Toolbx

En tant que hôte immuable, Fedora Silverblue est une excellente plateforme pour le développement basé-sur-conteneur et, pour travailler avec des conteneurs, https ://buildah.io/[buildah] et https ://podman.io/[podman] sont recommandés.

Fedora Silverblue also comes with the toolbx utility, which uses containers to provide an environment where development tools and libraries can be installed and used.

Why use toolbx?

Toolbx makes it easy to use a containerized environment for everyday software development and debugging. On immutable operating systems, like Fedora Silverblue, it provides a familiar package-based environment in which tools and libraries can be installed and used. However, toolbx can also be used on package-based systems.

Using Toolbx for running your workflows in a containerized manner brings you several advantages:

  • Il maintient le système d’exploitation hôte propre et stable, et permet d’éviter l’encombrement qui peut survenir après l’installation de nombreux outils de développement et paquets.

  • Vous avez accès aux différentes versions de distributions supportées indépendamment de la version que vous utilisez.

  • Les conteneurs sont un bon moyen d’isoler et d’organiser les dépendances nécessaires aux différents projets.

  • Les conteneurs sont un espace sécurisé pour expérimenter : si les choses évoluent mal, il est facile de jeter une boîte à outils et de recommencer.

However, it is very important to note that toolbx containers are still integrated with your host system, so you should not attempt to do things or run software you otherwise wouldn’t on your host system. Toolbx containers are not completely isolated environments like virtual machines.

Comment ça marche

Toolbx takes the work out of using containers, by providing a small number of simple commands to create, enter, list and remove containers. It also integrates toolbx containers into your regular working environment, to make it easy for you to use them as an everyday development space.

Containers are created from images and those are usually a very stripped down version of distributions. In such images there are almost no tools and documentation available. The team behind Toolbx maintains a Fedora image where such tools and documentation are available, providing a good out of the box experience.

Each toolbx container is an environment that you can enter from the command line. Inside each one, you will find:

  • Votre nom d’utilisateur et vos permissions existants

  • Accès à votre répertoire personnel et plusieurs autres emplacements

  • Accès au D-Bus du système et de la session, au système de journal et au Kerberos

  • Outils en ligne de commande courants, incluant un gestionnaire de paquet (par exemple DNF sur Fedora)

In other words, toolbx containers look, feel and behave like a standard Linux command line environment. By connecting all this information, toolbx containers lose a certain amount of security gained by using the containers technology. Therefore, you should not treat toolbx containers as a sandbox where you can execute any script you would never run on any other system.

In most cases, when a command is run inside a container, the program from inside the container is used. However, there are a few special cases where the program on the host is used instead (using flatpak-spawn). One example of this is the toolbox command itself; this makes it possible to use toolbx from inside toolbx containers.

Installation

Fedora Silverblue

Toolbx is preinstalled on Fedora Silverblue.

Fedora Workstation

Toolbx can be installed on Fedora Workstation (or any package-based version of Fedora) with the following command:

$ sudo dnf install toolbox

Votre première boîte à outils

Once toolbx is installed, two simple commands are required to get started:

$ toolbox create

This will download an OCI image and create a toolbx container from it. Once this is complete, run:

$ toolbox enter

Une fois à l’intérieur de la boîte à outils, vous pouvez accéder aux outils de ligne de commande courants, et en installer de nouveaux avec le gestionnaire de paquets (par exemple, DNF sur Fedora).

When the prompt is inside a toolbox, it is prepended with a diamond: this indicates that the prompt is inside a toolbx container. The diamond symbol may not be present if you use a custom shell theme.

Commandes et utilisation

toolbox create [options] <name>

Creates a toolbx container. This will download an OCI image if one isn’t available (this is required to create the container). By default an image matching the version of the host is used. If the host system does not have a matching image, a Fedora image is used instead.

Utilisé sans options, toolbox create nommera automatiquement le conteneur qu’il crée. Pour créer des boîtes à outils supplémentaires, utilisez l’argument <name>.

Pour utiliser une version spécifique du système hôte (par exemple, Fedora 32 sur Fedora 34), utilisez l’option --release <release> | -r <release>.

To use a different distribution to create a toolbx container (e.g., RHEL on Fedora), use the --distro <distro> | -d <distro> option.

Pour utiliser une autre image, utilisez l’option name --image <name> | -i <name>.

toolbox enter [options] <name>

Entrez dans une boîte à outils pour une utilisation interactive. Utilisez sans options, toolbox enter ouvre la boîte à outils par défaut.

Pour entrer dans une boîte à outils avec un nom spécifique, utilisez l’argument name.

Pour enter dans une toolbox pour une distribution différente (par exemple, Fedora sur RHEL), utilisez l’option --distro <distro> |-d <distro>.

Pour entrer dans une toolbox avec une version spécifique (par exemple, RHEL 8.1 sur RHEL 8.3), utilisez l’option --release <release> | -r <release>.

toolbox run [options] <cmd> <arg …​>

Exécuter une commande dans une toolbox sans entrer dedans. Utilisez, sans options, toolbox run pour exécuter la commande dans la toolbox par défaut.

Pour exécuter une commande dans une toolbox avec un nom spécifique, utilisez l’option --container <name> | -c <nom>.

Pour exécuter une commande dans une toolbox pour une distribution différente (par exemple, Fedora sur RHEL), utilisez l’option --distro <distro> |-d <distro>.

Pour exécuter une commande dans une toolbox avec une version spécifique (par exemple, RHEL 8.1 sur RHEL 8.3), utilisez l’option --release <release> | -r <release>.

toolbox list [options]

Lists local toolbx images and containers.

Pour afficher uniquement les conteneurs, utilisez l’option --containers | -c.

Pour afficher uniquement les images, utilisez l’option --images | -i.

toolbox rm [options] <name …​>

Removes one or more toolbx containers.

L’option --force | -f supprime les conteneurs marqués même s’ils sont en cours d’exécution.

The --all | -a option removes all toolbx containers.

toolbox rmi [options] <name …​>

Removes one or more toolbx images.

L’option --force | -f supprime les images marquées et tous les conteneurs qui ont été créés à l’aide des images marquées.

The --all | -a option removes all toolbx images.

toolbox --help

Shows Toolbx’s manual page.

Quitter une toolbox

Pour revenir à l’environnement hôte, exécutez exit ou quittez le shell actuel (généralement Ctrl+D).

Sous le capot

Toolbx uses the following technologies:

Contacts et problèmes

To report issues, make suggestions, or contribute fixes, see toolbx’s GitHub project.

To get in touch with toolbx users and developers, use Fedora’s Discourse instance, or join the #silverblue IRC channel on Libera.