Skip to main content

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 exemple outputs = [ "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