>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
TypeScript

Comment configurer un système fonctionnel sur une nouvelle distribution Linux en quelques clics avec TuxMate

Chaque fois que j'installe une nouvelle distribution Linux ou que je configure un poste de travail à partir de zéro, la même routine fastidieuse commence. D'abord, il faut se souvenir des noms exacts des paquets dans un dépôt spécifique. Sous Arch, ce peut être un nom, sous Debian le paquet est divisé en deux parties avec des suffixes -bin ou -common, sous Fedora il s'appelle différemment, et dans l'AUR il y a une troisième version. Résultat : les deux premières heures sont consacrées à essayer apt search, pacman -Ss et à rechercher les identifiants Flatpak corrects.

Dans le monde Windows, Ninite est utilisé depuis des années pour installer des logiciels en masse—vous pouvez sélectionner les programmes dont vous avez besoin et télécharger un seul installateur prêt à l'emploi. Linux est plus compliqué en raison de la variété des gestionnaires de paquets. Le projet TuxMate vise à résoudre ce problème de manière élégante et sans magie cachée.

TuxMate

Ce qu'est TuxMate

TuxMate est un générateur web de commandes d'installation et de scripts shell pour diverses distributions Linux, macOS et NixOS. L'auteur du projet s'est fixé un objectif simple : fournir aux développeurs un catalogue de logiciels où ils peuvent sélectionner leurs outils familiers une seule fois et recevoir immédiatement un script prêt à l'emploi et entièrement transparent pour leur système.

La principale différence entre TuxMate et les installateurs douteux du web réside dans un principe architectural. Le service n'installe rien en arrière-plan de lui-même. Il fonctionne exclusivement comme un configurateur. Vous sélectionnez les utilitaires, consultez le script bash généré directement dans le navigateur, vérifiez les options, et c'est seulement ensuite que vous exécutez les commandes dans votre terminal.

Interface TuxMate

Écosystèmes pris en charge

Le catalogue du projet est divisé en catégories : développement, utilitaires système, navigateurs, médias, sécurité et outils de communication. Au moment de cet article, la base de données contient plus de 180 applications.

Le générateur peut mapper les paquets pour les gestionnaires de paquets suivants :

  • Debian et Ubuntu (apt)
  • Arch Linux (pacman, avec support de l'assistant AUR pour yay et paru)
  • Fedora (dnf)
  • openSUSE (zypper)
  • NixOS (génère un extrait prêt pour configuration.nix)
  • Formats conteneurisés universels Flatpak et Snap
  • Homebrew (avec les formules CLI et les casks GUI séparés)

La priorité est donnée aux paquets natifs des distributions. Si un programme manque dans les dépôts officiels d'un OS particulier, le générateur intègre proprement un Flatpak vérifié, Snap ou le script d'installation officiel des auteurs de l'utilitaire.

Sélection d'une distribution et de logiciels

Ce qui rend le projet intéressant en coulisses

D'un point de vue technique, TuxMate est écrit sur une pile fraîche : Next.js 16 (App Router), React 19 et TypeScript. Le style utilise Tailwind CSS 4, et les animations fluides du catalogue sont réalisées avec Framer Motion et GSAP.

Voici plusieurs détails d'implémentation intéressants qui méritent l'attention lors de l'étude du code source :

Scripts shell bien conçus

Lorsque vous téléchargez le fichier .sh généré, vous constaterez que ce n'est pas simplement un amas de commandes install. Le script contient des vérifications de base de l'environnement :

  • Vérifie si un paquet est déjà installé dans le système avant de télécharger, afin de ne pas gaspiller de bande passante.
  • Mécanisme de nouvelle tentative avec backoff exponentiel en cas d'échec réseau.
  • Installation parallèle pour Flatpak, ce qui économise заметно du temps sur les logiciels lourds comme les navigateurs et les IDE.
  • Sortie terminale formatée en couleur avec une barre de progression et un résumé final.

Travail avec les spécificités des distributions

Les développeurs ont tenu compte des nuances des différents systèmes d'exploitation. Si vous construisez un script pour Arch, l'interface propose une bascule entre yay et paru, et affiche un badge AUR explicite à côté des paquets non officiels.

Pour NixOS, le service génère un bloc environment.systemPackages valide et vérifie automatiquement la présence de logiciels propriétaires, en ajoutant la permission nixpkgs.config.allowUnfree = true à la configuration si vous avez sélectionné Discord, VS Code ou Spotify.

Visualisation du script

Interface et fonctionnement hors ligne

L'application web fonctionne comme une PWA complète avec un service worker de mise en cache. La page continuera à fonctionner même si l'internet sur la machine configurée est temporairement coupé.

Pour les amateurs de travail sans souris, il y a une navigation clavier complète : touches Vim (hjkl), flèches, focus sur le champ de recherche avec slash /, et réinitialisation rapide avec Escape.

Comment exécuter localement ou déployer sa propre instance

Si vous ne voulez pas dépendre d'un hébergement externe ou si vous configurez un environnement fermé, le projet est facile à mettre en place avec Docker.

Vous pouvez récupérer le conteneur prêt à l'emploi depuis GitHub Container Registry :

docker run -d -p 3000:3000 --name tuxmate ghcr.io/abusoww/tuxmate:latest

Si vous prévoyez d'ajouter des paquets internes à votre entreprise ou des dépôts personnalisés, le projet se construit avec les outils Node.js standard :

git clone https://github.com/abusoww/tuxmate.git
cd tuxmate
npm install
npm run dev

Toute la base de données de l'application réside dans le répertoire src/lib/apps/ sous forme de fichiers JSON ordinaires, divisés par catégorie. Ajouter un nouvel utilitaire avec les noms de paquets corrects pour toutes les distributions n'est pas difficile.

Avantages pratiques et limitations

TuxMate répond à un problème de longue date pour les administrateurs système et les développeurs qui doivent fréquemment créer des machines virtuelles de test ou préparer des ordinateurs portables pour les nouveaux employés.

Au lieu de maintenir des notes textuelles dispersées avec des commandes apt install ..., vous obtenez une vitrine visuelle. Sélectionnez Docker, Git, Alacritty, Neovim, les navigateurs dont vous avez besoin, copiez une ligne et exécutez-la.

Limitations à garder à l'esprit :

  • La base de données des paquets contient actuellement environ deux cents applications, donc les logiciels spécialisés devront toujours être installés manuellement.
  • Les noms des paquets dans les dépôts changent avec le temps, donc vérifier le code généré avant de l'exécuter avec les privilèges sudo reste essentiel.

Cela vaut-il la peine d'essayer

TuxMate est un outil open source solide avec du code source disponible sous licence GPL-3.0. Il s'attaque à la partie la plus ennuyeuse de la configuration des systèmes Linux et fait gagner beaucoup de temps lors des migrations entre distributions.

Vous pouvez essayer la version web sur le site officiel du projet, et si vous trouvez un outil manquant ou une inexactitude dans le nom du paquet pour votre distribution, l'auteur est ouvert aux pull requests.

Projets similaires