Skip to main content

Installation de Nix

Pour commencer, il va falloir installer Nix sur votre machine. Pas d'inquiétude, ça ne va pas modifier votre système et vous pourrez l'enlever à tout moment en quelques commandes.

Si vous êtes déjà sur NixOS, vous pouvez évidemment ignorer cette étape.

Installation

Nix est disponible sur macOS et Linux. Si vous utilisez Windows, vous pouvez sans problème utiliser WSL avec n'importe quelle distribution.

Pour installer Nix, utilisez simplement la commande suivante dans Bash ou Zsh :

sh <(curl -L https://nixos.org/nix/install) --daemon

Redémarrez ensuite votre terminal, puis exécutez la commande suivante :

nix-env -iA nixpkgs.nix

Cela permettra de rendre tous les fichiers de Nix accessibles à votre utilisateur, et que votre utilisateur puisse gérer sa version de Nix.

En détail

Lors de l'installation de Nix, l'installeur créera un dossier /nix à la racine du système de fichier. Sur macOS, ce dossier est en vérité le point de montage d'un volume virtuel appelé Nix Store. Tout Nix ainsi que ce qu'il installera sera stocké dans ce dossier/volume. Votre système ne sera donc pas modifié, mis à part pour activer le démarrage du service nix-daemon qui permet de gérer l'accès multi-utilisateur à Nix (sauf sur WSL ou nix doit être installé en mode single-user à cause de l'absence de gestionnaire de service), et sur macOS pour activer le montage automatique du volume.

Aussi, dans votre dossier utilisateur, des fichiers et dossiers commençant par .nix vont apparaître. Ces fichiers sont des portes d'accès vers ce qui sera installé par Nix, et vers la configuration de votre utilisateur. Ce sont simplement des liens symboliques ou des dossiers en contenant.

Pour finir, il rajoutera aux fichiers /etc/bashrc (et peut-être /etc/bash.bashrc) et /etc/zshrc (ou ~/.bashrc et ~/.zshrc sur WSL) quelques lignes pour ajouter Nix et les paquets que vous installerez avec au PATH de votre shell, ainsi que quelques variables d'environnement nécessaires.

Et si j'utilise fish ?

Si vous utilisez fish, et que vous n'êtes pas sur WSL, vous devez ajouter la ligne suivante à votre fichier ~/.config/fish/config.fish :

source ~/.nix-profile/etc/profile.d/nix.fish

Bonus : sur une machine sans droit administrateur

Si vous êtes sur une machine sans droit administrateur, vous pouvez télécharger un binaire pré-compilé de nix et l'utiliser directement. Ce dernier utilisera le dossier ~/.local/share/nix/root comme store après avoir détecté que /nix n'existait pas.

Ça peut être pratique pour installer des paquets à la volée sur une machine où l'on est invité (en entreprise par exemple).

Désinstaller Nix

Si à un moment, vous voulez désinstaller Nix, vous pouvez suivre la procédure suivante :

  1. Stoppez les services liés à Nix à l'aide de la commande suivante :

    sudo systemctl disable nix-daemon.socket; sudo systemctl disable nix-daemon.service`
  2. Supprimez les lignes possiblement rajoutées par Nix à la fin des fichiers :

    • /etc/bashrc
    • /etc/bash.bashrc (s'il existe)
    • /etc/zshrc
    • Si vous l'avez modifié, ~/.config/fish/config.fish
  3. Supprimez les utilisateurs fantômes de compilation, dans bash ou zsh :

    for i in $(seq 1 10); do sudo userdel -f nixbld$i; done; sudo groupdel nixbld`
  4. Pour finir, supprimez tous les dossiers possiblement créés par Nix :

    sudo rm -rf /etc/nix /root/.nix-profile /root/.nix-defexpr /root/.nix-channels ~/.nix-profile ~/.nix-defexpr ~/.nix-channels /nix

N'hésitez pas à nous appeler à l'aide si vous rencontrez un problème.