From 6d533ae593feb34bd65f320f043746af9208b78e Mon Sep 17 00:00:00 2001 From: pigeonmoelleux Date: Wed, 6 Mar 2024 15:27:13 +0100 Subject: [PATCH] Ajout commandes utiles --- README.md | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/README.md b/README.md index c13c854..008fbfb 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,11 @@ Les fichiers `README.md` des différents dossiers devraient indiquer assez préc 3. [Machines](#machines) 4. [Modules](#modules) 5. [Devshells](#devshells) +3. [Commandes utiles](#commandes-utiles) + 1. [Commandes pour les flakes](#commandes-pour-les-flakes) + 2. [Commandes pour NixOS](#commandes-pour-nixos) + 3. [Commandes pour les devshells](#commandes-pour-les-devshells) + 4. [Commandes pour le Nix Store](#commandes-pour-le-nix-store) ## Nix et NixOS @@ -75,3 +80,72 @@ Le dossier [`modules`](modules) contient l'ensemble des options qui peuvent êtr ### Devshells Le dossier [`devshells`](devshells) contient des environnements de travails pouvant être utilisés par tout utilisateur. Ceux-ci permettent d'ajouter temporairement des paquets à l'environnement de travail (dont le shell bash ou équivalent), permettant ainsi d'avoir facilement (voir [la partie sur les commandes liées aux devshells](TODO)) tous les outils nécessaires au développement/débuggage. Vous pouvez voir plus de détails dans [`devshells/README.md`](devshells/README.md). + +## Commandes utiles + +Pour toutes les commandes présentées, on débutera la ligne de commande par `$` si tout utilisateur peut l'exécuter, et `#` s'il faut les droits super-utilisateur. + +### Commandes pour les flakes + +- Vérification de la validité de la flake + + ```bash + $ nix flake check [path] + ``` + +- Mise à jour d'une dépendance dans la flake (mettra à jour le lockfile) + + ```bash + $ nix flake lock --update-input [input name] + ``` + +- Mise à jour de toutes les dépendances de la flake (mettra à jour le lockfile) + + ```bash + $ nix flake update + ``` + +### Commandes pour NixOS + +- Regénération de la configuration **sans modifier la configuration**, utile pour tester une configuration + + ```bash + $ nixos-rebuild dry-build + ``` + +- Regénération de la configuration **en remplaçant la configuration courante** (ne fera rien si la configuration contient des erreurs) + + ``` + # nixos-rebuild switch + ``` + +### Commandes pour les devshells + +- Utilisation d'un devshell + + ```bash + $ nix develop [url] + ``` + + Par exemple, pour utiliser le devshell par défaut et que cette configuration est située dans `/etc/nixos`, la commande pourra être : `nix develop /etc/nixos#default`. Vous pouvez par ailleurs omettre `#default`, et sans dossier indiqué le dossier courant sera utilisé, on peut donc écrire `nix develop` pour utiliser le devshell par défaut si le dossier courant est `/etc/nixos`. + +### Commandes pour le Nix Store + +- Supprimer toutes les entrées du Nix Store non utilisées + + ```bash + $ nix-store --gc # "gc" pour garbage collect + ``` + +- Supprimer toutes les objets non atteignables dans le Nix Store + + ``` + # nix-collect-garbage + ``` + +- Optimiser les liens symboliques dans le Nix Store (permet de gagner de l'espace de stockage) + + ```bash + $ nix-store --optimise + ``` +