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 :
- macOS
- Linux (non WSL)
- WSL
sh <(curl -L https://nixos.org/nix/install)
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.
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.
sh <(curl -L https://nixos.org/nix/install) --no-daemon
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.
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 :
- macOS
- Linux (non WSL)
- WSL
- Supprimez les lignes possiblement rajoutées par Nix à la fin des fichiers :
/etc/bashrc
/etc/zshrc
- Si vous l'avez modifié,
~/.config/fish/config.fish
- Supprimez les sauvegardes des fichiers précédents :
sudo rm -f /etc/bashrc.backup-before-nix /etc/zshrc.backup-before-nix
- Ouvrez le fichier
/etc/synthetic.conf
et supprimez la lignenix
. Si c'est la seule ligne du fichier, vous pouvez le supprimer. - Dé-chargez puis supprimez les deux fichiers permettant le lancement du
service
nix-daemon
à l'aide des deux commandes suivantes :sudo launchctl unload /Library/LaunchDaemon/org.nixos.nix-daemon.plist /Library/LaunchDaemons/org.nixos.activate-system.plist
sudo rm /Library/LaunchDaemons/org.nixos.nix-daemon.plist /Library/LaunchDaemons/org.nixos.activate-system.plist - Supprimez le volume du Nix Store :
sudo diskutil apfs deleteVolume /nix
- Et 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.
Stoppez les services liés à Nix à l'aide de la commande suivante :
sudo systemctl disable nix-daemon.socket; sudo systemctl disable nix-daemon.service`
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
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`
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.
Supprimez les lignes possiblement rajoutées par Nix à la fin des fichiers :
~/.bashrc
~/.zshrc
- Si vous l'avez modifié,
~/.config/fish/config.fish
Pour finir, supprimez tous les dossiers possiblement créés par Nix :
sudo rm -rf ~/.nix-profile ~/.nix-defexpr ~/.nix-channels /nix
N'hésitez pas à nous appeler à l'aide si vous rencontrez un problème.