Flakes

Les Nix Flakes sont des dossiers (généralement des repo git) ayant à leur racine un fichier flake.nix. Ce fichier indique des "inputs" et des "outputs". Ainsi il permet de prendre des expressions Nix en entrée et donner toutes sortes de sorties.

Par exemple, on peut construire un flake qui:

et bien d'autres.

Un flake a également l'avantage par rapport aux channels, d'être vraiment reproductible. Lorsqu'un flake est créé et lancé pour la première fois, un fichier flake.lock est automatiquement créé. Ce fichier va spécifier chaque dépendence au commit prêt. Contrairement aux channels de Nixpkgs qui sont spécifiés par "release" et non par commit.

Les flakes bénéficient aussi de très bons outils (flake-utils et les commandes nix). Les flake-utils donnent des outils puissant pour créer des flakes et les commandes nix sont des outils très puissant et simple pour utiliser ces flakes.

Ainsi par exemple :

Je vais expliquer plus en détail comment ça fonctionne dans la partie pratique.

Il est aussi possible de créer des alias et d'utiliser nixpkgs via les flakes. Les alias peuvent être défini grâce au flake registery. Par exemple le flake nixpkgs est un alias pour github:NixOS/nixpkgs/nixpkgs-unstable. Et imaginons que je veut installer cowsay temporairement via un flake je peux simplement faire.

nix shell nixpkgs#cowsay

Revision #4
Created 10 July 2023 21:01:06 by SnowCode
Updated 12 July 2023 12:15:13 by SnowCode