d'après les logs, lors des installations je vois que beaucoup de téléchargements sont fait directement depuis github : ce n'est pas très rassurant pour la souveraineté (coucou la DINUM).
NixOS repose effectivement beaucoup (trop) sur GitHub. Après, nous pourrions tout de même relativiser...
Pour vulgariser, lorsque tu installes ou modifies NixOS, nixos-rebuild réalise principalement 3 étapes:
Lire ta configuration afin de générer une recette de build. On parle d'évaluation, et cela peut être fait manuellement via la commande nix-instantiate qui génère des "derivations".
Éxecuter la recette issue de l'évaluation pour construire le script de déploiement. On parle de build/realization et cela peut être fait manuellement via la commande nix-store --realize derivation.drv. Dans le cas de NixOS, lorsque tu buildes ta configuration, Nix construit un script (nommé switch-to-configuration) qui a pour rôle de modifier ton systeme à chaud (écrire dans /etc, installer le bootloader, ...).
Executer le script switch-to-configuration pour installer ou mettre à jour ton système.
Seules les étapes 1. et 2. ont besoin d'Internet.
Concernant l'étape 1., Nix a besoin du dépot nixpkgs qui contient les recettes de build des paquets NixOS. Ce dépot est hebergé sur GitHub et par défault, nixos-rebuild va donc récupérer les recettes de GitHub. Cependant, si tu clones ce dépot ailleurs, tu pourrais te passer de GitHub.
Concernant l'étape 2., nixos-rebuild va d'abord chercher des binaires préconstruits (la magie de la transparence source/binary) sur cache.nixos.org. Cela t'évite de builder localement tous les paquets dont tu as besoin. Si le paquet dont tu as besoin n'existe pas dans le cache NixOS, alors il va le construire localement. Si les sources de ce paquet sont sur GitHub, alors Nix va récupérer ces sources depuis GitHub [1].
Ce cache n'est pas hebergé sur GitHub, mais sur le S3 d'AWS :/
Il serait possible de se passer de ce S3 en rebuildant tous les paquets nécessaires localement ou en ayant une CI qui construit ces paquets et les expose comme cache.nixos.org.
En conclusion, par défaut, NixOS est effectivement fortement dépendant de services extra européens mais les outils existent pour s'en passer. Et à l'échelle d'un état, ce n'est pas insurmontable (des entreprises utilisant Nix le font déjà).
[1] une idée pourrait être de fallback sur Softwre Heritage si GitHub n'est pas la, mais il n'y a rien de très concret coté Nix pour l'instant (Guix est plus avancé sur ce sujet).
# Dépendance à GitHub
Posté par lewo . En réponse au journal Je teste Nixos : épisode 1 l'installation. Évalué à 7 (+7/-0).
NixOS repose effectivement beaucoup (trop) sur GitHub. Après, nous pourrions tout de même relativiser...
Pour vulgariser, lorsque tu installes ou modifies NixOS, nixos-rebuild réalise principalement 3 étapes:
nix-instantiatequi génère des "derivations".nix-store --realize derivation.drv. Dans le cas de NixOS, lorsque tu buildes ta configuration, Nix construit un script (nomméswitch-to-configuration) qui a pour rôle de modifier ton systeme à chaud (écrire dans /etc, installer le bootloader, ...).switch-to-configurationpour installer ou mettre à jour ton système.Seules les étapes 1. et 2. ont besoin d'Internet.
Concernant l'étape 1., Nix a besoin du dépot nixpkgs qui contient les recettes de build des paquets NixOS. Ce dépot est hebergé sur GitHub et par défault, nixos-rebuild va donc récupérer les recettes de GitHub. Cependant, si tu clones ce dépot ailleurs, tu pourrais te passer de GitHub.
Concernant l'étape 2., nixos-rebuild va d'abord chercher des binaires préconstruits (la magie de la transparence source/binary) sur cache.nixos.org. Cela t'évite de builder localement tous les paquets dont tu as besoin. Si le paquet dont tu as besoin n'existe pas dans le cache NixOS, alors il va le construire localement. Si les sources de ce paquet sont sur GitHub, alors Nix va récupérer ces sources depuis GitHub [1].
Ce cache n'est pas hebergé sur GitHub, mais sur le S3 d'AWS :/
Il serait possible de se passer de ce S3 en rebuildant tous les paquets nécessaires localement ou en ayant une CI qui construit ces paquets et les expose comme cache.nixos.org.
En conclusion, par défaut, NixOS est effectivement fortement dépendant de services extra européens mais les outils existent pour s'en passer. Et à l'échelle d'un état, ce n'est pas insurmontable (des entreprises utilisant Nix le font déjà).
[1] une idée pourrait être de fallback sur Softwre Heritage si GitHub n'est pas la, mais il n'y a rien de très concret coté Nix pour l'instant (Guix est plus avancé sur ce sujet).