Installation graphique de NixOS

Voir aussi : video youtube - code source

NixOS est une distribution Linux basée sur le gestionnaire de paquets Nix et la logithèque Nixpkgs. NixOS est particulièrement adaptée aux développeurs (entre autres), car elle permet de définir l’environnement logiciel d’un projet, de façon déclarative et reproductible.

Historiquement, NixOS était relativement compliquée à installer. En effet, il fallait utiliser la ligne de commande, configurer des fichiers en langage Nix et choisir parmi différentes méthodes de configuration. Mais depuis quelques temps, NixOS propose un installeur graphique, qui facilite grandement l’installation, et les outils de configuration ont gagné en maturité.

Cet article présente comment installer graphiquement NixOS et le configurer via Home-manager et les Flakes.

NixOS

Pour installer NixOS, il faut télécharger l’image ISO, en faire une clé usb bootable et démarrer sur cette clé.

Le processus d’installation est décrit dans la documentation (NixOS Manual - Graphical Installation) mais se fait très facilement. On lance l’installeur et on règle les options voulues (langues, fuseau horaire, clavier, environnement graphique, partitionnement…) :

L’installeur affiche ensuite un récapitulatif :

Puis on lance l’installation :

L’installateur indique la fin de l’installation :

On peut alors redémarrer sur le système installé :

Flakes

Les Nix Flakes sont une fonctionnalité assez récente de Nix pour définir et gérer des environnements logiciels. Ils sont encore en status expérimental mais sont souvent utilisés dans la communauté Nix.

Pour les activer, on peut ajouter la configuration suivante dans le fichier /etc/nixos/configuration.nix :

nix = {
  package = pkgs.nixFlakes;
  extraOptions = ''
    experimental-features = nix-command flakes
  '';
};

Puis mettre à jour le système :

# sudo nixos-rebuild switch

Home-manager

Home-manager permet de gérer l’environnement de travail de l’utilisateur. Pour l’installer, il suffit de lancer la commande Nix Flake suivante :

$ nix run home-manager/release-23.05 -- init --switch

Il ne reste plus qu’à configurer l’environnement voulu dans le fichier ~/.config/home-manager/home.nix, par exemple pour ajouter le logiciel geany :

home.packages = with pkgs; [
  geany
];

On met à jour avec la commande :

$ home-manager switch

Pour pouvoir installer des logiciels non-libres (par exemple Visual Studio Code), il suffit de remplacer la déclaration de pkgs dans le fichier ~/.config/home-manager/flake.nix par :

pkgs = import nixpkgs {
  inherit system;
  config.allowUnfree = true;
};

Pour plus de détails sur Home-manager, voir les tutoriel 40 et tutoriel 45.

Conclusion

L’installation de NixOS est aujourd’hui grandement facilitée par l’installeur graphique et les Nix Flakes. Cependant la configuration via Home-manager n’est pas graphique et nécessite toujours d’éditer des fichiers Nix.

Il est peu probable que la configuration de NixOS soit un jour faisable 100% graphiquement mais il existe un projet (en développement) de distribution Linux basée sur Nix et accessible aux débutants : SnowflakeOS.