Introduction à NixOS (Partie 1) WIP

Gestion déclarative

Avec NixOS, l'installation de paquets se fait de manière déclarative dans le fichier configuration.nix. Voici un exemple avec les paquets wget, neovim et git, qui seront installés lors de la construction du système. Il suffit de mettre à jour la configuration et de reconstruire le système et pour les enlever, il suffit de les supprimer et de reconstruire le système :

Exemple NixOS

{ config, pkgs, ... }:
{
  environment.systemPackages = with pkgs; [
    wget
    neovim
    git
  ];
}
{ config, pkgs, ... }:
{
  environment.systemPackages = with pkgs; [
  ];
}
sudo nixos-rebuild switch

Exemple Debian

Avec APT, l''installation de paquets est impérative et se fait via des commandes shell. Voici un exemple typique :

sudo apt-get update
sudo apt-get install neovim
sudo apt-get remove neovim

Isolation des paquets dans NixOS

NixOS utilise un système unique de gestion des paquets qui permet une isolation complète des logiciels. Cela évite les conflits de dépendances courants dans d''autres distributions Linux. Voici quelques points clés pour illustrer cette différence :

1. Installation dans le Nix Store

Contrairement à la plupart des distributions Linux, où les paquets sont installés dans des chemins communs (comme /usr/bin), NixOS installe tous les paquets dans un répertoire spécifique appelé le Nix Store. Ce répertoire se trouve généralement à /nix/store.

Chaque paquet a son propre chemin unique, ce qui signifie que deux versions différentes du même logiciel peuvent coexister sans conflit.

2. Dépendances isolées

Chaque paquet dans NixOS inclut ses propres dépendances, ce qui permet d''éviter les problèmes de compatibilité. Cela signifie que les mises à jour d''un paquet n''affectent pas les autres.

3. Comparaison avec Debian

Dans une distribution comme Debian, les paquets partagent des chemins communs. Par exemple, l''installation de neovim pourrait écraser une version précédente ou entraîner des conflits de dépendances.

Exemple NixOS

Pour voir où neovim est installé dans NixOS, vous pouvez utiliser la commande suivante :

which neovim

Cela affichera un chemin comme :

/nix/store/xxxxxxxx-neovim-0.10.1/bin/neovim

Exemple Debian

En revanche, dans Debian, la commande which pour neovim donnerait un chemin commun comme :

which neovim

Cela pourrait afficher :

/usr/bin/neovim

Conclusion

NixOS est une distribution puissante pour ceux qui cherchent à gérer leur système de manière déclarative et reproductible. Que vous soyez développeur ou administrateur système, NixOS offre des outils robustes pour répondre à vos besoins.