Erreurs communes
La commande nix
ne marche pas
Message d'erreur :
error: experimental Nix feature 'nix-command' is disabled; add '--extra-experimental-features nix-command' to enable it
Pour régler le souci, on peut ajouter les arguments à chaque commande qu'on tape
comme expliqué dans le message d'erreur, ou les ajouter dans la config Nix pour
que ça soit fait automatiquement. Il faut rajouter cette ligne dans ~/.config/nix/nix.conf
:
experimental-features = nix-command
Il y aura sans doute besoin de la feature flakes
aussi, donc autant mettre cette ligne plutôt :
experimental-features = nix-command flakes
CGroups V2
Avec Docker, il arrive que les containers ne se lancent pas, sans faire de message d'erreur.
Pour contourner le problème, il faut désactiver cgroups
V2 en
ajoutant ces options au Noyau Linux,
sur la machine hôte: systemd.unified_cgroup_hierarchy=0
.
Cette solution a marché pour des machines sous ArchLinux, mais semble insuffisante si on est sous Ubuntu (dans ce cas nous avons préféré utiliser les VM Qemu).
Beaucoup de paquets sont recompilés
Parfois quand on compile avec nxc build
, beaucoup de paquets sont
recompilés au lieu d'être récupérés depuis le cache binaire.
Une des raisons qui peut causer ces cache-miss est que NixOS-compose désactive X11 par défaut, alors qu'il est activé sur Hydra (et donc dans les paquets stockés dans le cache binaire). Cette différence se répercute dans les dépendances de certains paquets (compilés ou non avec le support de X11) et change donc leur hashs.
Pour contourner le souci, on peut réactiver X11 en ajoutant cette option dans sa composition :
environment.noXlibs = false;
Les images générées par nxc
seront un tout petit plus lourde, car quelques
bibliothèques en plus seront présentes, mais la différence devrait être
négligeable.