URL: https://linuxfr.org/news/l-heure-du-test-episode-1-nixos Title: L’heure du test — épisode 1 — NixOS Authors: gusterhack Davy Defaud, palm123, galbolle, ZeroHeure, Nils Ratusznik, patrick_g, BAud, Benoît Sibaud, Syvolc, Parleur et rpnpif Date: 2016年12月17日T12:07:56+01:00 License: CC By-SA Tags: nixos, test, nix, firefox et compiz Score: 50  _L’heure du test_ est un rendez‐vous qui vous propose de nombreux tests et guides d’installation de distributions, étape par étape et en exposant leurs avantages et leurs inconvénients. **Aujourd’hui, on s’attaque à une distribution qui est un peu particulière, j’ai nommé NixOS !**  ---- [Site officiel de la distribution](http://nixos.org/) [Page Wikipédia de NixOS](https://en.wikipedia.org/wiki/NixOS) [Dépêche très complète sur NixOS](https://linuxfr.org/news/nix-1-7-nixpkgs-et-nixos-14-04-guix-0-6) [Dépêche précédente sur NixOS](https://linuxfr.org/news/nixos-14-12-la-distribution-linux-sans-effet-de-bord) ---- NixOS ? ======= NixOs dont le slogan est « La distribution purement fonctionnelle » est une distribution GNU/Linux avec une approche unique pour la gestion des paquets et la configuration. NixOS est construit au‐dessus du gestionnaire de paquets [Nix](https://nixos.org/nix/), qui est déclaratif, ce qui rend les mises à niveau de paquets fiables et présente de nombreux autres avantages. Vous pouvez configurer votre système dans le [langage de NixOS](http://nixos.org/nix/manual/#ch-expression-language) via un ensemble de fichiers de configuration. NixOS possède un mécanisme de mise à jour et de retour en arrière. Imaginons que vous changiez une configuration ou que vous fassiez une mise à jour d’un logiciel de votre système qui le fait planter, vous pouvez revenir en arrière en annulant les modifications effectuées. De même, il est possible de mélanger des paquets sources et binaires. Télécharger NixOS ============ Pour télécharger NixOS, cela se passe ici : [télécharger NixOS](https://nixos.org/nixos/download.html). Vous avez le choix entre différentes installations : - en téléchargeant l’ISO pour ensuite la graver sur un CD/DVD ou sur une clef USB (disponible en 32 bits et 64 bits) vous avez deux possibilités : soit prendre un CD autonome (_live CD_) pour pouvoir tester NixOS sans l’installer, soit télécharger l’installation minimale pour uniquement l’installer ; - via une machine tout prête pour être importée dans VirtualBox, mais uniquement pour l’architecture 64 bits ; - pour l’installer sur l’hébergement Amazon EC2 ; - ou pour la plate‐forme Microsoft Azure. Pour VirtualBox, comme dit précédemment, vous pouvez utiliser une image tout prête de la machine, mais c’est plus ludique de faire tout le processus d’installation. Installer NixOS =============== Configuration du BIOS --------------------- Commencez par démarrer sur votre CD/DVD ou via votre clef USB. En changeant l’ordre d’amorçage dans votre BIOS, si ce n’est pas déjà fait, ou en accédant au menu d’amorçage rapide. Ensuite, vous vous retrouvez devant la console _root_. Configurer votre clavier ------------------------ Commencez par mettre le terminal en clavier Francais (AZERTY) avec : `loadkeys fr`. Si vous êtes en [[bépo]] : `loadkeys fr-bepo`. Connexion à Internet -------------------- Tout d’abord : - si vous êtes en Wi‐Fi, vous devez configurer votre accès à Internet ; - si vous êtes en Ethernet, la connexion se fait automatiquement. Ensuite, on va tester pour voir si on est bien connecté à Internet, car c’est nécessaire pour installer le système en faisant un : `ping www.google.fr`. Si vous recevez une réponse, c’est que c’est bon ! Partitionnement --------------- Ensuite, on va partitionner notre disque dur en utilisant l’utilitaire `fdisk` et `mkfs.etx4`. Commencez par lister vos partitions sur vos disques en faisant : `fdisk -l`. Formatez ensuite la première partition pour installer le système : `mkfs.ext4 -L nixos /dev/sda1` On configure NixOS ------------------ Pour configurer NixOs il faut éditer le fichier : `/mnt/etc/nixos/configuration.nix`. Grâce à ce fichier de configuration vous pouvez paramétrer tout de votre système Nix. Que ce soit : - la configuration du système horaire ; - le chargeur de boot par exemple Grub ; - la configuration des utilisateurs de la machine ; - les paquet de base disponibles pour tous les utilisateur de la machine ; - la configuration de votre serveur graphique type Xorg ou encore Wayland ; - la configuration du réseau ; - la configuration de votre gestionnaire de bureau KDE, Gnome, E17, XFCE et autres et votre gestionnaire de fenêtre awesome, twm, i3, openbox, compiz. On monte la partition `/dev/sda1` qui a comme libellé « nixos » dans `/mnt` : `mount LABEL=nixos /mnt` Ensuite, on va générer un fichier de configuration initial : `nixos-generate-config --root /mnt` Ensuite, on peut commencer à configurer NixOS à notre sauce : `nano /mnt/etc/nixos/configuration.nix` ### Configurer Grub Ajoutez tout d’abord le démarrage sur le premier disque `/dev/sda` : ` boot.loader.grub.device = "/dev/sda";` ### Configurer NixOS pour VirtualBox Si vous êtes sous VirtualBox, dans le fichier, ajoutez la ligne permettant à NixOS de savoir qu’il se situe dans une machine virtuelle : `virtualisation.virtualbox.guest.enable = true;` Ajoutez la ligne pour désactiver la vérification des journaux du système de fichiers : `boot.initrd.checkJournalingFS = false;` ### Configurer l’interface graphique #### Installer X.org Vous pouvez activer l’affichage de l’écran de connexion (par exemple _sddm_) dès le démarrage : `services.xserver.displayManager.sddm.enable = true;` et activer l’utilisateur par défaut avec : ```nix services.xserver.displayManager.sddm.autoLogin = { user = "votre_login"; enable = true; }; ``` #### Installer un gestionnaire de bureau Si vous voulez installer, par exemple : - [KDE 5](https://fr.wikipedia.org/wiki/KDE) : `services.xserver.desktopManager.kde5.enable = true;` ; - [GNOME 3](https://fr.wikipedia.org/wiki/GNOME) : `services.xserver.desktopManager.gnome3.enable = true;` ; - [Xfce](https://fr.wikipedia.org/wiki/Xfce) : `services.xserver.desktopManager.xfce.enable = true;` ; - [E17](https://fr.wikipedia.org/wiki/Enlightenment_(logiciel)) : `services.xserver.desktopManager.e17.enable = true;`. #### Installer un gestionnaire de fenêtres C’est le même principe pour les gestionnaires de fenêtres. Par exemple, pour installer [twm](https://fr.wikipedia.org/wiki/Twm) : `services.xserver.windowManager.twm.enable = true;` Pour [Awesome](https://fr.wikipedia.org/wiki/Awesome_(logiciel)) : `services.xserver.windowManager.awesome.enable = true;` #### Installer des applications pour tous les utilisateurs On peut installer une application pour tous les utilisateurs. Par exemple, pour Emacs, vous devez écrire : `environment.systemPackages = [ pkgs.emacs ];` Finalisation de l’installation ------------------------------ Une fois votre système configuré, vous pouvez lancer l’installation de NixOS : `nixos-install` Découverte de NixOS =================== Le gestionnaire de paquetages Nix ------------------------------ L’une des particularités de NixOS est que vous pouvez installer des applications sans droit _root_. Dans ce cas, l’application est uniquement visible sur le compte d’utilisateur pour lequel vous l’avez installée. ### Installer et désinstaller une application pour un compte utilisateur L’installation d’une application se fait via la commande : `nix-env --install firefox` On peut voir que Firefox est installé. Maintenant essayons de désinstaller Firefox : `nix-env --uninstall firefox` ### Revenir en arrière Bien sûr, là, Firefox est désinstallé ; mais pas vraiment, car si vous faites un : `nix-env --rollback` Alors, Firefox est de retour ; cette commande annule l’action précédente, c’est‐à‐dire la désinstallation de Firefox. ### Nettoyer le cache Vu que le paquet n’est pas totalement désinstallé, cela occasionne des pertes d’espace disque ; une des solutions est de lancer la commande : `nix-env --delete-generations old` suivie par : `nix-collect-garbage` pour supprimer complètement les programmes désinstallés. Attention, si vous n’avez plus d’espace disque, certains programmes qui ont besoin d’écrire des choses sur le disque peuvent refuser de fonctionner et cela peut provoquer une instabilité du système. Pour lister l’ensemble des paquets présents sur Nix : `nix-env -qa`. Le système de channel --------------------- NixOS possède un système de canal qui permet de choisir les versions sur lesquelles on veut faire des mises à jour. ### Lister les channels Pour savoir le canal qu'on suit taper simplement : `nix-channel --list` Pour connaître la liste des canaux que vous pouvez utiliser, vous pouvez aller sur le [dépôt](https://nixos.org/channels/) de NixOS, les canaux que vous pouvez suivre commencent par le préfixe `nixos-`. ### Changer de channel Supposons que vous souhaitiez suivre le canal de mise à jour de la version 14.12 de NixOS. Vous pouvez simplement le suivre en tapant : `nix-channel --add https://nixos.org/channels/nixos-14.12 nixos` (_root_) Et ensuite taper : `nixos-rebuild switch --upgrade` (_root_) Pour mettre à jour vers cette version. Si, par exemple, vous étiez à la 16.09, vous rétrogradez vers la 14.12. Conclusion ========== NixOS est vraiment une super distribution, peu importe l’erreur que vous faites, vous pouvez revenir en arrière. La configuration du système est très simple, vous n’avez pas à jongler avec les fichiers de configuration, tout se fait dans un seul. Et, ça, c’est cool ! Note finale : 9/10