Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English

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

Par mis à jour le

Améliorer cette page

L'installation de Nix prend moins de 5 minutes et dépose l'essentiel dans le 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. Les sorties montrées ont été relevées sur Nix 2.35.2.

  • Choisir entre l'installation single-user et multi-user selon votre contexte
  • Installer Nix sur votre distribution Linux avec un installateur vérifié par son empreinte
  • 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, et le choix dépend de votre usage. Le critère décisif est la séparation des privilèges : en multi-user, un daemon construit les paquets sous des comptes dédiés, ce qui protège le store des autres utilisateurs de la machine.

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)

La page de téléchargement de nixos.org propose de piper le script d'installation dans sh. Ne le faites pas : vous exécuteriez en root un script que personne n'a lu, sans savoir quelle version il installe. Le projet publie, pour chaque version, le script et son empreinte SHA-256 sur releases.nixos.org : téléchargez les deux, comparez, lisez le script, et seulement ensuite exécutez-le.

Fenêtre de terminal
curl -fsSL -o install-nix.sh https://releases.nixos.org/nix/nix-2.35.2/install
curl -fsSL https://releases.nixos.org/nix/nix-2.35.2/install.sha256
sha256sum install-nix.sh
less install-nix.sh

Les deux empreintes doivent être identiques, mesuré le 1er octobre 2026 : 9adda97297d9e8ab360df95c729eabff4f4f93d6db091953c3a68f29e3fb130c. Le script épingle à son tour l'archive de Nix 2.35.2 de chaque architecture par son hash, et refuse une archive qui ne lui correspond pas.

Le mode single-user est le plus simple. Nix s'installe dans /nix et fonctionne directement sous votre utilisateur, sans daemon. Lancez le script vérifié avec l'option --no-daemon :

Fenêtre de terminal
sh install-nix.sh --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 de chargement dans ~/.profile
  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. Contrairement au mode single-user, il touche aussi à quelques fichiers système hors de /nix, que la désinstallation devra retirer.

Fenêtre de terminal
sh install-nix.sh --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 de build nixbld*
  2. Il installe et démarre le service nix-daemon.service, et écrit /etc/nix/nix.conf
  3. Il crée /etc/profile.d/nix.sh et ajoute une ligne de chargement dans les fichiers de shell globaux (/etc/bash.bashrc ou /etc/bashrc, /etc/zshrc), 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 la société 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 en une commande (/nix/nix-installer uninstall). Sa documentation propose, elle aussi, de piper un script dans sh : la même règle s'applique, on télécharge, on lit, puis on exécute.

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

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

Vérifiez également que le store est accessible à travers le daemon :

Fenêtre de terminal
nix store info
Store URL: daemon
Version: 2.35.2
Trusted: 0

Store URL: daemon confirme que votre commande passe bien par le daemon. La ligne Trusted indique si votre compte figure dans trusted-users, qui vaut root par défaut : un utilisateur ordinaire lit donc Trusted: 0, et c'est normal. Seul root (ou un compte ajouté à trusted-users) lit Trusted: 1, qui autorise des réglages sensibles comme l'ajout d'un cache binaire.

Par défaut, les commandes 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. Sur Nix 2.35.2, la moindre de ces commandes échoue tant que la fonctionnalité n'est pas activée :

error: experimental Nix feature 'nix-command' is disabled; add '--extra-experimental-features nix-command' to enable it

Ajoutez la ligne au fichier /etc/nix/nix.conf, à la suite de ce que l'installateur y a écrit (tee -a ajoute sans écraser) :

Fenêtre de terminal
echo "experimental-features = nix-command flakes" | sudo tee -a /etc/nix/nix.conf

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
nix config show experimental-features
fetch-tree flakes nix-command

fetch-tree s'ajoute tout seul : c'est une fonctionnalité dont les flakes dépendent, activée automatiquement avec elles. Inutile en revanche d'écrire sandbox = true : le bac à sable des builds est déjà actif par défaut sur Linux.

En multi-user, l'installateur ajoute le chargement de Nix dans les fichiers de shell globaux, lus à l'ouverture de session. Si les commandes Nix ne sont pas disponibles après connexion, ajoutez dans votre ~/.bashrc ou ~/.zshrc le chargement du script du daemon :

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, ajoutez dans ~/.config/fish/config.fish le script propre à votre mode d'installation : nix-daemon.fish en multi-user, nix.fish en single-user.

Fenêtre de terminal
# Charger Nix (installation multi-user)
if test -e /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.fish
source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.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, suivez la procédure du manuel de Nix correspondant à votre mode d'installation. La version multi-user compte plus d'étapes, parce que l'installateur a touché à des fichiers système et créé des comptes.

Les quatre étapes reprennent l'ordre du manuel : arrêter le daemon, supprimer les fichiers, retirer les comptes de build, puis nettoyer les fichiers de shell globaux. Sautez la dernière et chaque nouveau shell affichera une erreur en cherchant un script qui n'existe plus.

  1. Arrêtez le daemon :

    Fenêtre de terminal
    sudo systemctl stop nix-daemon.service
    sudo systemctl disable nix-daemon.socket nix-daemon.service
    sudo systemctl daemon-reload
  2. Supprimez les fichiers Nix, ceux de votre compte et ceux de root :

    Fenêtre de terminal
    sudo rm -rf /etc/nix /etc/profile.d/nix.sh /etc/tmpfiles.d/nix-daemon.conf /nix \
    ~root/.nix-channels ~root/.nix-defexpr ~root/.nix-profile ~root/.cache/nix
    rm -rf ~/.nix-profile ~/.nix-defexpr ~/.nix-channels \
    ~/.local/share/nix ~/.local/state/nix ~/.cache/nix
  3. Supprimez les comptes et le groupe :

    Fenêtre de terminal
    for i in $(seq 1 32); do sudo userdel "nixbld$i"; done
    sudo groupdel nixbld
  4. Retirez les lignes ajoutées par l'installateur dans /etc/bash.bashrc, /etc/bashrc, /etc/profile, /etc/zsh/zshrc et /etc/zshrc, selon ceux qui existent sur votre distribution.

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

Retirez aussi la ligne de chargement ajoutée dans ~/.profile.

La plupart des blocages tiennent à un shell qui n'a pas encore chargé Nix, à un daemon arrêté, ou à des fonctionnalités expérimentales non activées. Lisez le message exact : celui de la quatrième ligne nomme lui-même l'option manquante.

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
error: experimental Nix feature 'nix-command' is disabledCommandes 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 -ld /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 pas à vos paquets : apt, dnf et ce qu'ils ont installé restent intacts, les paquets Nix vivent dans /nix.
  • Testez avec nix run nixpkgs#cowsay pour vérifier que tout fonctionne de bout en bout.
  • La désinstallation multi-user a quatre étapes : daemon, fichiers, comptes nixbld*, puis fichiers de shell globaux.

Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

Ce projet vous est utile ?

Les guides, formations, quiz et labs restent gratuits. Si vous les utilisez régulièrement, vous pouvez contribuer à leur maintenance et à leur développement.

Devenir membre de soutien (nouvel onglet) Soutenir une fois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn