Aller au contenu
Administration Linux medium

Installer Nix sur Linux : mode single-user et multi-user

10 min de lecture

L’installation de Nix prend moins de 5 minutes et ne modifie rien en dehors du répertoire /nix. Vous pouvez l’installer sur Debian, Ubuntu, Fedora, Arch ou toute distribution Linux — et le désinstaller proprement si besoin. Ce guide couvre les deux modes d’installation, la configuration initiale des commandes modernes et des flakes, et un premier test pour vérifier que tout fonctionne.

  • Choisir entre l’installation single-user et multi-user selon votre contexte
  • Installer Nix sur votre distribution Linux en une commande
  • Activer les commandes modernes (nix shell, nix profile, nix search) et les flakes
  • Vérifier que l’installation fonctionne avec un premier paquet temporaire
  • Désinstaller Nix proprement si nécessaire

Vous avez lu le guide sur l’écosystème Nix et vous voulez passer à la pratique. Voici les situations typiques :

  • Vous administrez un serveur Debian ou Ubuntu et vous voulez tester Nix sans toucher à votre installation apt existante.
  • Vous développez sur plusieurs projets qui ont besoin de versions différentes de Python, Node.js ou Terraform.
  • Vous préparez un environnement reproductible pour votre équipe.
  • Vous êtes sur un poste partagé et vous avez besoin d’isoler vos paquets.
  • Un système Linux avec accès root (sudo)
  • curl installé (présent par défaut sur la plupart des distributions)
  • Au moins 5 Go d’espace disque disponible pour /nix
  • Une connexion Internet
Fenêtre de terminal
# Vérifier que curl est disponible
which curl || sudo apt install curl # Debian/Ubuntu

Nix propose deux modes d’installation. Le choix dépend de votre usage.

CritèreSingle-userMulti-user
DaemonNonOui (nix-daemon)
IsolationPas de séparation de privilègesBuilds isolés dans des comptes dédiés
UtilisateursUn seulPlusieurs
Recommandé pourTests rapides, poste personnelServeurs, postes partagés, production
Droits pour installerUtilisateur courantRoot (pour le daemon)

Le mode single-user est le plus simple. Nix s’installe dans /nix et fonctionne directement sous votre utilisateur, sans daemon.

Fenêtre de terminal
sh <(curl -L https://nixos.org/nix/install) --no-daemon
  1. L’installateur télécharge Nix et crée le répertoire /nix/store/
  2. Il configure votre shell en ajoutant une ligne dans ~/.profile ou ~/.bashrc
  3. Les commandes Nix deviennent accessibles dans votre PATH

Le mode multi-user crée un daemon système (nix-daemon) et un groupe de comptes dédiés (nixbld1 à nixbld32) pour isoler les builds.

Fenêtre de terminal
sh <(curl -L https://nixos.org/nix/install) --daemon

L’installateur vous pose quelques questions. Répondez yes à chaque fois pour accepter les valeurs par défaut.

  1. L’installateur crée le répertoire /nix/store/ et les comptes nixbld*
  2. Il installe et démarre le service nix-daemon.service
  3. Il configure /etc/profile.d/nix-daemon.sh pour que tous les utilisateurs aient Nix dans leur PATH

Après l’installation, vérifiez que le daemon tourne :

Fenêtre de terminal
systemctl status nix-daemon.service

Sortie attendue :

● nix-daemon.service - Nix Daemon
Loaded: loaded (/etc/systemd/system/nix-daemon.service; linked; preset: enabled)
Active: active (running)
Main PID: 2383 (nix-daemon)

Le Determinate Nix Installer (maintenu par Determinate Systems) est une alternative à l’installateur officiel. Il installe toujours en multi-user, active les flakes par défaut, et fournit une désinstallation propre.

Fenêtre de terminal
curl --proto '=https' --tlsv1.2 -sSf -L \
https://install.determinate.systems/nix | sh -s -- install

Ouvrez un nouveau terminal (ou sourcez le profil manuellement) et testez :

Fenêtre de terminal
nix --version
nix (Nix) 2.34.6

Vérifiez également que le store est accessible :

Fenêtre de terminal
nix store info
Store URL: daemon
Version: 2.34.6
Trusted: 1

Trusted: 1 confirme que votre utilisateur est reconnu par le daemon Nix.

Par défaut, certaines commandes Nix modernes (nix shell, nix profile, nix search, nix develop) et les flakes sont désactivées car elles sont encore considérées comme expérimentales par l’équipe Nix — même si la communauté les utilise massivement.

Créez ou éditez le fichier /etc/nix/nix.conf :

Fenêtre de terminal
sudo mkdir -p /etc/nix
sudo tee /etc/nix/nix.conf > /dev/null << 'EOF'
experimental-features = nix-command flakes
sandbox = true
EOF

Puis redémarrez le daemon :

Fenêtre de terminal
sudo systemctl restart nix-daemon.service

Vérifiez que la configuration est prise en compte :

Fenêtre de terminal
cat /etc/nix/nix.conf
experimental-features = nix-command flakes
sandbox = true

En multi-user, l’installateur crée automatiquement /etc/profile.d/nix-daemon.sh qui est sourcé au login. Si les commandes Nix ne sont pas disponibles après connexion, ajoutez dans votre ~/.bashrc ou ~/.zshrc :

Fenêtre de terminal
# Charger Nix
if [ -e /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh ]; then
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
fi

Pour Fish shell, ajoutez dans ~/.config/fish/config.fish :

Fenêtre de terminal
# Charger Nix
if test -e /nix/var/nix/profiles/default/etc/profile.d/nix.fish
source /nix/var/nix/profiles/default/etc/profile.d/nix.fish
end

Vérifions que Nix fonctionne de bout en bout en exécutant un paquet sans l’installer :

Fenêtre de terminal
nix run nixpkgs#cowsay -- 'Nix fonctionne !'

La première exécution télécharge les dépendances depuis le cache binaire :

__________________
< Nix fonctionne ! >
------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||

Le paquet cowsay n’est pas installé dans votre profil. Il a été téléchargé dans le store (/nix/store/) et exécuté une seule fois. Vous pouvez le vérifier :

Fenêtre de terminal
which cowsay
# cowsay not found — il n'est pas dans votre PATH

C’est l’une des forces de Nix : tester un outil en une commande, sans polluer votre système.

Si vous voulez retirer Nix de votre système :

  1. Arrêtez le daemon :

    Fenêtre de terminal
    sudo systemctl stop nix-daemon.service
    sudo systemctl disable nix-daemon.socket nix-daemon.service
  2. Supprimez les fichiers Nix :

    Fenêtre de terminal
    sudo rm -rf /nix /etc/nix
    sudo rm -f /etc/profile.d/nix-daemon.sh
  3. Supprimez les comptes et le groupe :

    Fenêtre de terminal
    for i in $(seq 1 32); do sudo userdel "nixbld$i" 2>/dev/null; done
    sudo groupdel nixbld 2>/dev/null
  4. Nettoyez les fichiers utilisateur :

    Fenêtre de terminal
    rm -rf ~/.nix-profile ~/.nix-defexpr ~/.nix-channels ~/.local/state/nix
Fenêtre de terminal
rm -rf /nix ~/.nix-profile ~/.nix-defexpr ~/.nix-channels

Retirez aussi la ligne de sourcing dans ~/.profile, ~/.bashrc ou ~/.zshrc.

SymptômeCause probableSolution
nix: command not found après installationShell non rechargéOuvrez un nouveau terminal ou sourcez le profil manuellement
error: getting status of /nix/nix n’existe pasRelancez l’installateur
error: cannot connect to daemonnix-daemon arrêtésudo systemctl start nix-daemon.service
warning: Nix search path entry... après nix searchCommandes modernes non activéesAjoutez experimental-features = nix-command flakes dans /etc/nix/nix.conf
permission denied sur /nix/store/Installation single-user avec mauvais propriétaireVérifiez ls -la /nix/store/ — le propriétaire doit être votre utilisateur (single) ou root (multi)
  • Le mode multi-user est recommandé : il isole les builds dans des comptes dédiés et fonctionne pour tous les utilisateurs du système.
  • Activez nix-command et flakes dans /etc/nix/nix.conf — c’est indispensable pour suivre les guides de cette section.
  • Nix ne touche rien en dehors de /nix : votre apt, votre dnf et vos paquets existants restent intacts.
  • Testez avec nix run nixpkgs#cowsay pour vérifier que tout fonctionne de bout en bout.
  • La désinstallation est propre : supprimer /nix et les fichiers de configuration suffit.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn