Les dérivations
Les dérivations dans Nix sont la base des builds des applications. Elle se basent sur la fonction derivation
, cependant vous n'utiliserez probablement jamais cette fonction directement car elle est bien trop basique. C'est pour cela que des fonctions tel que mkDerivation
du package stdenv
sont là, ce sont des fonctions basée sur derivation
mais qui rendent les choses plus simple et plus sûres pour les mainteneurs de paquets.
Nous allons voir ici comment la fonction de base derivation
fonctionne, ce qu'elle fait et comment les builds fonctionnent dans Nix.
La fonction derivation
Cette fonction prends comme argument un set d'attribut avec les attributs suivant :
-
system
, qui précise l'architecture du paquet -
name
, qui précise le nom du paquet -
builder
qui est le programme utilisé pour construire le paquet (cela peut être une autre dérivation, ou un chemin de fichier) - (optionnel)
args
qui est une liste des arguments à passer au builder - (optionnel)
outputs
qui spécifie la liste symbolique des outputs (par exempleoutputs = [ "lib" "doc" ]
. Par défault, Nix crée une variable d'environnement$out
qui spécifie la localisation du dossier dans le Nix store, mais on peut très bien en ajouter d'autres tel que$lib
ou$doc