Nix (package manager)/fr: Difference between revisions
Created page with "==== Nettoyage du Nix store ====" |
Created page with "Category:Pedias Category:Nix Category:Incomplete Category:Software" |
||
| (16 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
<languages/> | <languages/> | ||
{{Navbox Nix}} | {{Navbox Nix}} | ||
{{Disambiguation|message=Cet article traite du gestionnaire de paquets Nix. À ne pas confondre avec l'[[écosystème Nix]], le [[langage Nix]] ou la [[commande Nix]].}} | {{Disambiguation|message=Cet article traite du gestionnaire de paquets Nix. À ne pas confondre avec l'[[Nix ecosystem|écosystème Nix]], le [[Nix (language)|langage Nix]] ou la [[Nix (command)|commande Nix]].}} | ||
Nix est un gestionnaire de paquets et un système de compilation qui analyse des instructions de compilation reproductibles spécifiées dans le [[langage d'expression Nix]], un langage fonctionnel pur avec évaluation paresseuse. Les expressions Nix sont des fonctions pures<ref>Les valeurs ne peuvent pas changer pendant le calcul. Les fonctions produisent toujours le même résultat si leur entrée ne change pas. </ref>qui prennent des dépendances en arguments et produisent une « [[Derivations|dérivation]] » spécifiant un environnement de compilation reproductible pour le paquet. Nix stocke les résultats de la compilation à des adresses uniques spécifiées par un hachage de l'arborescence complète des dépendances, créant ainsi un magasin de paquets immuable (également appelé [[#Nix store|nix store]]) qui permet des mises à jour atomiques, des retours en arrière et l'installation simultanée de différentes versions d'un paquet, éliminant ainsi pratiquement [https://en.wikipedia.org/wiki/Dependency_hell l'enfer des dépendances]. | Nix est un gestionnaire de paquets et un système de compilation qui analyse des instructions de compilation reproductibles spécifiées dans le [[Nix Expression Language|langage d'expression Nix]], un langage fonctionnel pur avec évaluation paresseuse. Les expressions Nix sont des fonctions pures<ref>Les valeurs ne peuvent pas changer pendant le calcul. Les fonctions produisent toujours le même résultat si leur entrée ne change pas. </ref>qui prennent des dépendances en arguments et produisent une « [[Derivations|dérivation]] » spécifiant un environnement de compilation reproductible pour le paquet. Nix stocke les résultats de la compilation à des adresses uniques spécifiées par un hachage de l'arborescence complète des dépendances, créant ainsi un magasin de paquets immuable (également appelé [[#Nix store|nix store]]) qui permet des mises à jour atomiques, des retours en arrière et l'installation simultanée de différentes versions d'un paquet, éliminant ainsi pratiquement [https://en.wikipedia.org/wiki/Dependency_hell l'enfer des dépendances]. | ||
<span id="Usage"></span> | <span id="Usage"></span> | ||
| Line 36: | Line 36: | ||
==== Nettoyage du Nix store ==== | ==== Nettoyage du Nix store ==== | ||
Pour plus d'informations sur le nettoyage du Nix store, consultez {{NixOS Manual|name=Manuel NixOS : Chapitre - Nettoyage du Nix store|anchor=#sec-nix-gc}}. | |||
< | <span id="Nix_store_corruption"></span> | ||
==== Nix store | ==== Corruption du Nix store ==== | ||
Pour plus d'informations sur la réparation d'un Nix store endommagé, consultez {{NixOS Manual|name=Manuel NixOS : Chapitre - Corruption du Nix store|anchor=#sec-nix-store-corruption}}. | |||
< | <span id="Valid_Nix_store_names"></span> | ||
==== | ==== Noms valides du Nix store ==== | ||
{{main|Valid Nix store path names}} | {{main|Valid Nix store path names}} | ||
< | <span id="Profiles"></span> | ||
=== | === Profils === | ||
Afin de construire un environnement utilisateur ou système cohérent, Nix crée des liens symboliques entre les entrées du magasin Nix et des « profils ». Ceux-ci constituent l'interface par laquelle Nix permet les restaurations : le magasin étant immuable et les versions précédentes des profils étant conservées, revenir à un état antérieur revient simplement à modifier le lien symbolique vers un profil antérieur. Pour être plus précis, Nix crée des liens symboliques vers les binaires dans des entrées du magasin Nix représentant les environnements utilisateur. Ces environnements utilisateur sont ensuite liés symboliquement à des profils étiquetés stockés dans <code>/nix/var/nix/profiles</code>, qui sont à leur tour liés symboliquement au répertoire <code>~/.nix-profile</code> de l'utilisateur. | |||
=== Sandboxing === | === Sandboxing === | ||
Lorsque les compilations en bac à sable sont activées, Nix configure un environnement isolé pour chaque processus de compilation. Cela permet d'éliminer les dépendances cachées supplémentaires définies par l'environnement de compilation afin d'améliorer la reproductibilité. Cela inclut l'accès au réseau pendant la compilation en dehors des fonctions <code>fetch*</code> et aux fichiers situés en dehors du Nix store. Selon le système d'exploitation, l'accès à d'autres ressources est également bloqué (par exemple, la communication interprocessus est isolée sous Linux). | |||
Le sandboxing est activé par défaut sous Linux, et désactivé par défaut sous macOS. | |||
Dans les pull requests pour Nixpkgs, il est demandé aux contributeurs de tester les builds avec le sandboxing activé (voir <code>Testé avec le sandboxing</code> dans le modèle de pull request) car dans les builds officiels d'Hydra, le sandboxing est également utilisé. | |||
Pour configurer Nix pour le sandboxing, définissez <code>sandbox = true</code> dans <code>/etc/nix/nix.conf</code> ; pour configurer NixOS pour le sandboxing, définissez <code>nix.useSandbox = true;</code> dans <code>configuration.nix</code>. L'option <code>nix.useSandbox</code> est définie sur <code>true</code> par défaut depuis NixOS 17.09. | |||
< | <span id="Alternative_Interpreters"></span> | ||
=== | === Interpréteurs Alternatifs === | ||
Un projet est actuellement en cours pour réécrire Nix de A à Z en Rust. | |||
* [https://cs.tvl.fyi/depot/-/tree/tvix tvix] | * [https://cs.tvl.fyi/depot/-/tree/tvix tvix] | ||
Il existe également une version dérivée de Nix 2.18 développée par la communauté, baptisée Lix, qui met l'accent sur la fiabilité, la facilité d'utilisation et la croissance. Bien qu'elle ait également porté certains composants de Nix vers Rust, il ne s'agit pas d'une réécriture complète comme Tvix. | |||
* [https://lix.systems/ lix] | * [https://lix.systems/ lix] | ||
Des essais préliminaires peuvent être trouvés sur [https://riir-nix.github.io/ riir-nix] | |||
==Notes== | ==Notes== | ||
< | <références /> | ||
[[Category:Pedias]] | [[Category:Pedias]] | ||
[[Category:Nix]] | [[Category:Nix]] | ||
[[Category:Incomplete]] | [[Category:Incomplete]] | ||
[[Category:Software]] | [[Category:Software]] | ||