1 private link
Deux-trois remarques par rapport à NixOS.
La configuration du système complet se fait via un seul fichier texte (/etc/nixos/configuration.nix
) et qui spécifie l'ensemble des services, paquets, utilisateurs et comportements. Par exemple, pour avoir un utilisateur dans sudo, whell, networkmanager, gnome, ... on a un petit fichier d'une centaine de lignes (pratiquement auto-généré), qui peut être mis en conf' (Git, tout ça...).
Le deuxième niveau, c'est l'isolation utilisateur. En tant que non-root, je peux installer tout ce qui est dispo dans les dépôts.
Si un binaire n'existe pas, les sources sont généralement dispos. Elles sont ensuite placées dans un store (/nix/store/...
) et le système continue à vivre sa vie grâce à des liens symboliques :-) Par exemple:
[fred@nixos:~]$ nix-env --install vscodium
replacing old 'vscodium-1.56.2'
installing 'vscodium-1.56.2'
building '/nix/store/562hzi24sijm8vvl5h4w69lxk15nmzhm-user-environment.drv'...
created 54 symlinks in user environment
Le dernier niveau, c'est l'isolation dans un shell kleenex. Une fois que le shell est détruit, toutes dépendances le sont également. Une forme d'environnement disposable ;-)
[fred@nixos:~]$ python --version
python: command not found
[fred@nixos:~]$ nix-shell -p python310
[nix-shell:~]$ python --version
Python 3.10.0a5
[nix-shell:~]$ exit
exit
[fred@nixos:~]$ python --version
python: command not found