Cet article présente une fonction Zsh nommée "update" conçue pour simplifier le nettoyage et la mise à jour des outils de développement. L'idée principale est de centraliser en une seule commande la gestion de plusieurs utilitaires courants tels que Homebrew, Docker, nvm et les worktrees Git. Cela permet de libérer de l'espace disque et d'éviter l'accumulation de données inutiles laissées par ces outils.
La fonction aborde le problème de l'espace disque saturé en identifiant et en supprimant les "déchets" spécifiques à chaque outil. Pour les worktrees Git, elle recherche et supprime ceux qui sont orphelins, c'est-à-dire qui ne correspondent plus à une branche active. Dans le cas de nvm, elle gère la suppression des versions de Node.js obsolètes ou inutilisées, tout en proposant des mécanismes de sauvegarde et de confirmation.
Enfin, la fonction "update" utilise topgrade pour orchestrer les mises à jour des différents paquets et applications. Elle intègre également des commandes spécifiques pour nettoyer les caches Homebrew, les images et volumes Docker non utilisés, et offre un bilan détaillé de l'espace récupéré en gigaoctets avant de confirmer les actions.
L’auteur explique son passage de Homebrew à Nix sur macOS pour gérer ses paquets de manière déclarative. L’idée principale est de rendre son environnement reproductible et versionnable, comme son infrastructure déjà gérée via Terraform ou Ansible. Nix permet de décrire ses paquets dans un fichier texte, facilitant leur installation sur n’importe quel Mac en une seule commande.
L’article clarifie les différences entre Nix (gestionnaire de paquets), nixpkgs (dépôt de plus de 140 000 paquets) et NixOS (distribution Linux basée sur Nix). Il souligne que Nix, bien que puissant, implique une courbe d’apprentissage avec un langage fonctionnel complexe et une documentation fragmentée. Malgré ces défis, il offre des avantages comme des rollbacks natifs et une reproductibilité totale.
Enfin, l’auteur détaille les étapes de migration : inventorier ses paquets Homebrew, installer Nix avec home-manager, puis désinstaller Homebrew. Il insiste sur les particularités de Nix, comme son stockage isolé dans /nix/store et son non-respect du FHS, tout en reconnaissant que macOS limite partiellement ces contraintes.
L'auteur détaille son processus d'installation pour ses machines sous MacOS :
- utilisation d'un fichier Brewfile pour installer des outils avec Homebrew
- définition de paramètres par défaut (en utilisant la ligne de commande)
- installation de plugins Zsh et définition d'alias
Tout est dans le titre
Eric Meyer change de Mac (machine obsolète) et nous livre ses impressions et astuces