Nix

Installation

Lancer cette commande depuis un compte qui a accès à root en sudo :

curl -L https://nixos.org/nix/install | sh

Ajouter dans le .zshrc :

source ${HOME}/.nix-profile/etc/profile.d/nix.sh

Commandes de base

Description Commande
Créer un shell avec des paquets nix-shell '<nixpkgs>' -p ansible_2_9
Installer un paquet nix-env -i <package>

Utiliser shell.nix

Exemple de fichier nix qui crée un shell avec quelques dépendances :

{ pkgs ? import <nixpkgs> {} }:

pkgs.mkShell {
  buildInputs = [ 
    pkgs.ansible_2_9
    pkgs.jsonnet
    pkgs.pwgen
  ];  
}

Pour l’utiliser avec direnv, faire un fichier .envrc contenant use_nix. Pour l’activer dans le répertoire, faire direnv allow.

Fonctions

callPackage

package = callPackage ./attr-set.nix { attrs... } : permet d’importer un paquet définit dans un fichier externe. Cette fonction wrap la dérivation en ajoutant deux fonctions :

  • override : override les attributs du fichier
  • overrideAttrs : modifier les attributs de la dérivation

Projets liés