Distrobox : Pour libérer votre système immuable

Mc Guyver devant Distrobox

Si tu as suivi le guide précédent, ta machine sous Bazzite est désormais une console de jeu parfaite, propre et unifiée. C’est l’OS idéal pour lancer une partie depuis le canapé sans se poser de questions. Mais nous avons un problème. La nuit, tu es peut-être un « Gamer », un « Player God Mode », mais le jour, tu restes un surfeur du numérique, peut être en télétravail ou un bidouilleur invétéré qui a besoin de vrais outils.

Et c’est là que le mur de la réalité te frappe de plein fouet. Un matin, tu ouvres ton terminal avec l’intention innocente d’installer un petit utilitaire réseau ou un paquet Python avec un simple gestionnaire de paquets. Le système te renvoie poliment un message d’erreur t’expliquant que le système de fichiers est en lecture seule. Bienvenue dans le monde merveilleux des systèmes immuables.

Bazzite repose sur l’architecture atomique de Fedora, gérée par rpm-ostree. En termes simples, le noyau, les fondations de ton système d’exploitation sont verrouillées et figées. C’est une excellente nouvelle pour la stabilité : impossible de casser l’OS par erreur avec une dépendance douteuse. C’est même vital si la machine est partagée pour un usage professionnel la journée, garantissant qu’aucun script foireux ne viendra corrompre le système.

Ironie de la situation : on installe délibérément un système blindé pour avoir la paix, et notre premier réflexe est de passer des heures à chercher comment contourner cette sécurité pour pouvoir bidouiller à nouveau. Espèce de geek!

Heureusement, reprendre le contrôle de ton terminal ne demande pas de désactiver les sécurités du système. La solution s’appelle Distrobox.

Ne fuis pas en entendant le mot « conteneur ». Oublie les machines virtuelles lourdes de cinquante gigaoctets qui mettent trois minutes à démarrer et qui isolent complètement tes fichiers. Distrobox est un outil qui va te permettre de faire tourner n’importe quelle distribution Linux (Ubuntu, Debian, Arch) à l’intérieur de Bazzite, de manière quasi invisible et instantanée.

Le coup de génie technique réside dans son intégration. Ce conteneur partage nativement ton dossier personnel (/home), ton réseau, tes clés de sécurité matérielles et tes périphériques USB. Tu as besoin d’utiliser la commande apt pour installer un gestionnaire de serveur ou un environnement de développement ? Tu ouvres ton conteneur, tu as les droits d’administration complets, tu installes tes paquets, et le reste de ton OS Bazzite n’est absolument pas pollué. C’est le bac à sable ultime.

Ouvre ton terminal, et voyons comment mettre en place cet espace de liberté surveillée (oui c’est un concept de maitre du monde)

Partie 1 : Créer son bac à sable et retrouver ses commandes familières

La beauté de Bazzite, c’est que les développeurs ont parfaitement conscience de la rigidité de leur propre système. Distrobox est donc préinstallé et prêt à l’emploi. Sous le capot, il s’appuie sur Podman (une alternative à Docker qui fonctionne sans nécessiter les droits root complets sur la machine hôte) pour gérer les conteneurs.

Pour notre exemple concret, nous allons déployer un environnement de travail sous Ubuntu. Pourquoi ce choix ? Tout simplement parce que si tu administres déjà ton propre serveur Ubuntu à la maison pour héberger tes services personnels ou ton Nextcloud, tu as la mémoire musculaire de la commande apt. L’objectif ici est de te recréer un terminal familier, sans avoir à réapprendre une nouvelle syntaxe pour chaque petit utilitaire réseau dont tu aurais besoin.

La commande de création

Ouvre le terminal natif de Bazzite (le gestionnaire de console par défaut fera l’affaire) et tape cette simple commande :

Bash
distrobox create --name ubuntu-admin --image ubuntu:latest

Décortiquons techniquement ce qui vient de se passer :

  • Le paramètre --name ubuntu-admin attribue un nom clair à ton conteneur. Tu peux l’appeler comme tu veux, mais la nomenclature est importante quand tu commenceras à en avoir cinq ou six pour différents projets.
  • Le paramètre --image ubuntu:latest indique à Podman d’aller interroger les registres officiels pour rapatrier la toute dernière image brute d’Ubuntu. Si tu avais besoin d’un environnement Arch Linux pour compiler un paquet spécifique, il aurait suffi de remplacer cette valeur par archlinux:latest.

Le système télécharge l’image (quelques dizaines de mégaoctets tout au plus, on est loin de l’iso complète d’une machine virtuelle) et prépare l’environnement.

L’entrée dans la matrice

Une fois la création validée, il est temps de plonger dans le conteneur :

Bash
distrobox enter ubuntu-admin

Lors de cette toute première connexion, le terminal va figer pendant une petite minute. Ne panique pas et ne coupe pas le processus. C’est ici que Distrobox accomplit sa magie noire.

Plutôt que de te laisser dans un conteneur vide et isolé, le script va monter silencieusement ton dossier /home de Bazzite à l’intérieur du conteneur Ubuntu. Il va également synchroniser les permissions de ton utilisateur, faire le pont avec la gestion du son (PulseAudio/PipeWire), et autoriser le conteneur à utiliser l’accélération graphique de ta carte vidéo.

Plus important encore pour la sécurité de tes connexions distantes, tes clés matérielles FIDO2 ou tes clés SSH stockées dans ton répertoire personnel seront immédiatement utilisables depuis le conteneur. Tu n’as aucune configuration de réseau ou de montage de volume à gérer manuellement.

La gestion de paquets classique

L’invite de commande de ton terminal vient de changer pour afficher le nom de ton conteneur. Tu es désormais virtuellement sous Ubuntu, tout en étant physiquement sur le noyau Bazzite.

Faisons le test ultime. Tu dois diagnostiquer un problème réseau ou te connecter rapidement à une machine distante, et tu as besoin de tes outils habituels. Tape ceci :

Bash
sudo apt update
sudo apt install htop nmap ssh rsync

Le gestionnaire de paquets de Debian se lance, résout les dépendances et installe tes utilitaires en dix secondes.

Le plus fort dans tout ça ? Si tu avais voulu installer htop directement sur le système hôte Bazzite, il aurait fallu utiliser la commande rpm-ostree install htop, attendre de longues minutes que le système recompile l’intégralité de l’image de l’OS avec ce nouveau paquet, et obligatoirement redémarrer l’ordinateur pour que la modification prenne effet.

Avec Distrobox, tu as le meilleur des deux mondes : la forteresse imprenable de Bazzite pour gérer ton matériel et tes jeux, et la flexibilité absolue d’Ubuntu dans le terminal pour travailler et bidouiller en toute liberté.

Partie 2 : L’exportation graphique, ou l’illusion parfaite

Maintenant que tu as retrouvé tes repères en ligne de commande, poussons le concept un peu plus loin. Le terminal, c’est fantastique pour la rapidité, mais tu auras inévitablement besoin d’installer une application avec une interface graphique (GUI).

Sur Bazzite, la documentation officielle te dira d’utiliser exclusivement les Flatpaks. C’est très bien dans la théorie. Dans la pratique, tu vas rapidement tomber sur ce fameux client VPN propriétaire, cet outil de flashage matériel ou ce gestionnaire de base de données obscur dont l’éditeur ne fournit, depuis dix ans, qu’un bon vieux fichier d’installation au format .deb.

Tu as alors deux choix. Soit tu tentes de forcer l’installation de ce paquet alien dans l’architecture atomique de Bazzite, avec la certitude quasi absolue de casser les dépendances de ton système de base. Soit tu l’installes chaudement dans ton conteneur Ubuntu.

C’est ici que Distrobox dévoile sa fonctionnalité la plus impressionnante : le partage du serveur d’affichage (Wayland ou X11). Ton conteneur n’est pas aveugle ; il a le droit d’afficher des fenêtres sur ton bureau Bazzite.

Installer et exporter une application

Prenons l’exemple de Remmina, un excellent client de bureau à distance multiprotocole (RDP, VNC, SSH), indispensable pour tout bon administrateur système.

Assure-toi d’être à l’intérieur de ton conteneur Ubuntu, et installe le logiciel le plus classiquement du monde :

Bash
sudo apt install remmina

Le logiciel est maintenant installé dans ton conteneur. Tu pourrais le lancer en tapant remmina dans ce terminal, mais ce n’est ni ergonomique, ni pérenne. L’objectif est que cette application apparaisse au milieu de tes autres logiciels sur Bazzite, comme si elle était native, et que tu puisses la lancer d’un simple clic sans jamais avoir à ouvrir une console.

Pour cela, Distrobox intègre une commande magique. Toujours depuis l’intérieur du conteneur, tape ceci :

Bash
distrobox-export --app remmina

Que se passe-t-il sous le capot ?

Ne te laisse pas tromper par la simplicité de cette commande. Derrière, Distrobox vient de réaliser un travail d’orfèvre :

  • Création du lanceur : Le script a généré un fichier .desktop (le format standard des raccourcis sous Linux) et l’a discrètement copié dans le répertoire ~/.local/share/applications/ de ton système hôte Bazzite.
  • Le pont d’exécution : Ce raccourci ne pointe pas vers un exécutable classique. Il contient une instruction qui dit à Bazzite : « Lance Podman en tâche de fond, réveille le conteneur ubuntu-admin, et demande-lui d’exécuter le processus remmina« .
  • L’intégration visuelle : L’icône de l’application a également été exportée.

Quitte ton terminal, ouvre le lanceur d’applications de ton environnement de bureau Bazzite (KDE ou GNOME), et tape « Remmina ». L’application est là. Clique dessus. Elle s’ouvre avec la même réactivité qu’un logiciel natif. L’intégration est tellement parfaite que tu en oublieras que ce logiciel tourne en réalité dans une bulle Ubuntu hermétique.

Tu viens de créer un système de type Frankenstein, où des paquets Debian s’exécutent de manière transparente sur une base Fedora immuable orientée gaming. Et le plus absurde dans tout cela, c’est que cette chimère est infiniment plus stable et sécurisée que la gestion native des logiciels sous Windows.

Conclusion : Le beurre, l’argent du beurre, et le terminal

Grâce à Distrobox, le mur du système en lecture seule n’existe plus. Tu n’as plus à choisir entre la robustesse granitique d’un OS console comme Bazzite et la souplesse d’une distribution de développement.

Ton système d’exploitation principal reste immaculé, dédié à fournir les meilleures performances possibles pour lancer tes jeux et gérer ton matériel. Et dès que tu dois enfiler ta casquette d’administrateur, tes conteneurs sont là, prêts à encaisser tes compilations douteuses, tes tests de paquets instables et tes outils professionnels. Le jour où tu détruis accidentellement ton environnement de travail à cause d’une commande fatale, la punition se résume à une ligne de code pour supprimer le conteneur (distrobox rm ubuntu-admin) et dix secondes pour en recréer un neuf. Ton système hôte, lui, n’aura même pas sourcillé.

Garde ce couteau suisse à portée de clic. C’est l’outil qui transforme définitivement Bazzite d’une simple curiosité pour joueurs en une station de travail redoutable pour power users exigeants.

Avatar de Cedric Ougier

Cédric Ougier

Retrouvez-moi également via

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.