NixOS/fr: Difference between revisions
Created page with "Pour plus d'informations, consultez la [section « Modules https://nixos.org/nixos/manual/index.html#sec-writing-modules » du manuel NixOS]." |
Created page with "Chaque fois que l'état du système est reconstruit à l'aide de l'option <code>nixos-rebuild switch</code>, une nouvelle génération est créée. Vous pouvez revenir à la génération précédente à tout moment, ce qui s'avère utile si une modification de configuration (ou une mise à jour du système) s'avère préjudiciable." |
||
| (14 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
<languages/> | <languages/> | ||
{{Navbox Nix}} | {{Navbox Nix}} | ||
{{Expansion|reason=Il faut que cette page soit une introduction accessible parce que c'est un des premiers articles que les nouveaux utilisateurs lisent ici. C'est pourquoi les sujets plus compliqués devraient être | {{Expansion|reason=Il faut que cette page soit une introduction accessible parce que c'est un des premiers articles que les nouveaux utilisateurs lisent ici. C'est pourquoi les sujets plus compliqués devraient être traités dans d'autres articles.}} | ||
[https://nixos.org/ NixOS] est une distribution Linux basée sur [[Special:MyLanguage/Nix|Nix]] un gestionnaire de paquets et un système de construction. À l'échelle du système, il supporte la [https://fr.wikipedia.org/wiki/Programmation_déclarative programmation déclarative] au travers d'une [https://fr.wikipedia.org/wiki/Gestion_de_configuration gestion de configuration] ainsi que les mises à jour [https://fr.wikipedia.org/wiki/Atomicité_(informatique) atomiques] et les "retours en arrière" (rollbacks), bien qu'il puisse aussi supporter des paquets [https://fr.wikipedia.org/wiki/Programmation_impérative impératifs] ainsi que la gestion des utilisateurs. | [https://nixos.org/ NixOS] est une distribution Linux basée sur [[Special:MyLanguage/Nix|Nix]] un gestionnaire de paquets et un système de construction. À l'échelle du système, il supporte la [https://fr.wikipedia.org/wiki/Programmation_déclarative programmation déclarative] au travers d'une [https://fr.wikipedia.org/wiki/Gestion_de_configuration gestion de configuration] ainsi que les mises à jour [https://fr.wikipedia.org/wiki/Atomicité_(informatique) atomiques] et les "retours en arrière" (rollbacks), bien qu'il puisse aussi supporter des paquets [https://fr.wikipedia.org/wiki/Programmation_impérative impératifs] ainsi que la gestion des utilisateurs. | ||
| Line 8: | Line 8: | ||
Depuis que Nix met des [https://fr.wikipedia.org/wiki/Fichier_exécutable exécutables] en cache, cela permet d'avoir un compromis unique entre une approche orientée autour de l'exécutable présente dans des distributions comme Debian et une approche orientée autour du [https://fr.wikipedia.org/wiki/Code_source code source] utilisée dans des distributions comme Gentoo. Les binaires peuvent être utilisés comme des composants standard, tandis que les paquets sur-mesure et les modules peuvent être utilisés automatiquement quand un binaire pré-compilé n'est pas disponible. | Depuis que Nix met des [https://fr.wikipedia.org/wiki/Fichier_exécutable exécutables] en cache, cela permet d'avoir un compromis unique entre une approche orientée autour de l'exécutable présente dans des distributions comme Debian et une approche orientée autour du [https://fr.wikipedia.org/wiki/Code_source code source] utilisée dans des distributions comme Gentoo. Les binaires peuvent être utilisés comme des composants standard, tandis que les paquets sur-mesure et les modules peuvent être utilisés automatiquement quand un binaire pré-compilé n'est pas disponible. | ||
Les versions stables de NixOS sont publiées deux fois par an (vers la fin mai et la fin novembre). NixOS a été créé par [https://edolstra.github.io/ Eelco Dolstra] et [https://en.wikipedia.org/wiki/Armijn_Hemel Armijn Hemel], et a vu le jour en 2003. Il est développé et maintenu par la communauté sous l'égide de la [[Special:MyLanguage/Nix_Community#NixOS_Foundation|Fondation NixOS]]. | |||
== Installation == | == Installation == | ||
| Line 24: | Line 22: | ||
* Amazon EC2 AMIs, | * Amazon EC2 AMIs, | ||
De plus, de nombreuses installations Linux existantes peuvent être converties en installations NixOS à l'aide de nixos-infect ou nixos-in-place; cela s'avère particulièrement utile pour installer NixOS chez des hébergeurs qui ne prennent pas en charge NixOS de manière native. | |||
<span id="System_architectures"></span> | <span id="System_architectures"></span> | ||
| Line 102: | Line 98: | ||
Pour plus d'information sur l'utilisation et la mise en place des canaux, merci de vous référer aux [[Special:MyLanguage/channel branches| branches]]. | Pour plus d'information sur l'utilisation et la mise en place des canaux, merci de vous référer aux [[Special:MyLanguage/channel branches| branches]]. | ||
< | <span id="Internals"></span> | ||
== | == En interne == | ||
<span id="Comparison_with_traditional_Linux_Distributions"></span> | <span id="Comparison_with_traditional_Linux_Distributions"></span> | ||
=== Comparaison avec les distributions Linux traditionnelles === | === Comparaison avec les distributions Linux traditionnelles === | ||
''Article principal: [[Special:MyLanguage/Nix vs. Linux Standard Base|Nix vs. Linux Standard Base]]'' | |||
'' | |||
La principale différence entre NixOS et les autres distributions Linux réside dans le fait que NixOS ne suit pas la structure de système de fichiers définie par la [https://en.wikipedia.org/wiki/Linux_Standard_Base Linux Standard Base]. Sur les systèmes conformes à la norme LSB, les logiciels sont stockés sous <code>/{,usr}/{bin,lib,share}</code> et les fichiers de configuration sont généralement stockés dans <code>/etc</code>. Les binaires logiciels sont disponibles dans l'environnement utilisateur s'ils sont placés dans l'un des répertoires <code>/bin</code> de la LSB. Lorsqu'un programme fait référence à des bibliothèques dynamiques, il recherche les bibliothèques requises dans les dossiers LSB (<code>/lib</code>, <code>/usr/lib</code>). | |||
Dans NixOS, cependant, <code>/lib</code> et <code>/usr/lib</code> n'existent pas. À la place, toutes les bibliothèques système, les binaires, les noyaux, les micrologiciels et les fichiers de configuration sont placés dans le [[Special:MyLanguage/Nix#Nix store|Nix store]]. Les fichiers et répertoires situés dans <code>/nix/store</code> sont nommés d'après les hachages des informations décrivant les données compilées. Tous les fichiers et répertoires placés dans le magasin Nix sont immuables. <code>/bin</code> et <code>/usr/bin</code> sont pratiquement inexistants : ils ne contiennent respectivement que <code>/bin/sh</code> et <code>/usr/bin/env</code>, afin d'assurer une compatibilité minimale avec les scripts existants utilisant des lignes shebang. Les environnements au niveau utilisateur sont implémentés à l'aide d'un grand nombre de liens symboliques vers tous les paquets et fichiers auxiliaires requis. Ces environnements sont appelés [[Special:MyLanguage/Nix#Profiles|profils]] et sont stockés dans <code>/nix/var/nix/profiles</code>, chaque utilisateur disposant de ses propres profils. C'est en structurant le système de cette manière que NixOS tire ses principaux avantages par rapport aux distributions Linux classiques, tels que l'atomicité et la prise en charge des retours en arrière. | |||
<span id="Usage_of_the_Nix_store"></span> | <span id="Usage_of_the_Nix_store"></span> | ||
=== Utilisation du Nix store === | === Utilisation du Nix store === | ||
Une grande partie de la confusion chez les débutants provient du fait que la configuration est stockée dans l'arborescence en lecture seule <code>/nix/store</code>, aux côtés de tous les paquets installés. Cela rend impossible toute modification manuelle de la configuration du système ; toutes les modifications de configuration doivent être effectuées en éditant le fichier <code>/etc/nixos/configuration.nix</code> et en exécutant la commande <code>nixos-rebuild switch</code>. NixOS fournit le [[Special:MyLanguage/NixOS_modules|système de modules]] pour modifier toutes les configurations requises. Les utilisateurs doivent d'abord utiliser [https://search.nixos.org/options l'outil de recherche d'options] pour vérifier si l'option dont ils ont besoin existe avant de tenter d'ajouter manuellement des fichiers ou des configurations via des fonctionnalités de bas niveau de NixOS telles que les scripts d'activation. | |||
La pureté du système permet de centraliser la configuration, sans avoir à modifier plusieurs fichiers. Cette configuration peut être distribuée ou soumise à un contrôle de version, selon les besoins. Elle garantit également le déterminisme : si vous fournissez les mêmes données d'entrée, la même version de Nixpkgs et le même fichier <code>/etc/nixos/configuration.nix</code>, vous obtiendrez exactement le même état du système. | |||
=== Modules === | === Modules === | ||
| Line 217: | Line 202: | ||
== Voir également == | == Voir également == | ||
* [[Special:MyLanguage/NixOS modules|NixOS modules]], a library for modular [[Special:MyLanguage/Overview of the Nix Expression Language#Expressions|Nix expressions]] which powers [[#declarative-configuration|the declarative configuration of NixOS]]. | * [[Special:MyLanguage/NixOS modules|NixOS modules]], a library for modular [[Special:MyLanguage/Overview of the Nix Expression Language#Expressions|Nix expressions]] which powers [[#declarative-configuration|the declarative configuration of NixOS]]. | ||
* [[Special:MyLanguage/NixOS VM tests|NixOS VM tests]], a library for creating reproducible infrastructure tests, based on [[Special:MyLanguage/Nixpkgs|Nixpkgs]], [[Special:MyLanguage/NixOS|NixOS]], QEMU and Perl. | * [[Special:MyLanguage/NixOS VM tests|NixOS VM tests]], a library for creating reproducible infrastructure tests, based on [[Special:MyLanguage/Nixpkgs|Nixpkgs]], [[Special:MyLanguage/NixOS|NixOS]], QEMU and Perl. | ||
* [https://github.com/ryan4yin/nixos-and-flakes-book NixOS & Flakes Book] (Ryan4yin, 2023) - 🛠️ ❤️ An unofficial NixOS & Flakes book for beginners. | * [https://github.com/ryan4yin/nixos-and-flakes-book NixOS & Flakes Book] (Ryan4yin, 2023) - 🛠️ ❤️ An unofficial NixOS & Flakes book for beginners. | ||
[[Category:Pedias]] | [[Category:Pedias]] | ||
[[Category:NixOS]] | [[Category:NixOS]] | ||
[[Category:Nix{{#translation:}}]] | [[Category:Nix{{#translation:}}]] | ||