NixOS/fr: Difference between revisions
Created page with "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..." Tags: Mobile edit Mobile web edit |
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." |
||
| (5 intermediate revisions by the same user not shown) | |||
| 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 110: | Line 108: | ||
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>). | 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> | ||
| Line 119: | Line 115: | ||
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. | 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 208: | 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:}}]] | ||