Installation d'une VM NixOS
NixOS est une distribution Linux basée sur le gestionnaire de paquet Nix. Elle utilise une configuration déclarative et permet des mises à jour fiables du système. NixOS a commencé comme un projet de recherche par Eelco Dolstra en 2003. La fondation NixOS a été fondée en 2015 et vise à soutenir des projets comme NixOS qui mettent en œuvre le modèle de déploiement purement fonctionnel.
NixOS dispose d'outils dédiés aux Devops et aux tâches de déploiement. NixOS suit une cadence de publication de deux versions par an. Ces versions sont habituellement publiées autour de mai et novembre. Chaque numéro de versions a le format « YY.MM ». Par exemple, la version 24.11 de NixOS correspond à la version publiée en novembre 2024.
Dans NixOS, l'ensemble du système d'exploitation — le noyau, les applications, les composants système, les fichiers de configuration, etc. — est construit par le gestionnaire de paquets Nix à partir d'une description dans un langage de construction fonctionnel. La création d'une nouvelle configuration ne peut pas remplacer les configurations précédentes.
Dans Nix, il n’y a pas de répertoire /bin, de /sbin, de /lib ou de /usr. Tout est gardé dans un /nix/store. Dans le /nix/store on va retrouver nos hiérarchies habituelles, rangées dans des « dérivations ».
Téléchargement
Rendez-vous sur la page de téléchargement du site web pour télécharger le dernier ISO d'installation de NixOS en version Gnome. L'ISO est disponible en version ARM ou AMD64.
Création d'une nouvelle machine (Virtualbox)
- Lancer VirtualBox

- [Nouvelle]
- Nom : NixOS
- Folder : default
- ISO Image : nixos.iso
- Type : Linux
- Version : Other Linux (64 bit)
- ☑ Skip Unattended Installation
- [Suivant]
- Mémoire : 4096 Mio (3192 Mio si vous n'avez que 8Go de RAM)
- Processors : autant de cœurs vert que possible
- [Suivant]
- Créer un disque dur, VDI, Dynamique, 25 Gio
Configuration
- Système [Carte mère]
- ☑ Activer EFI (OS spéciaux seulement)
- Affichage [Écran]
- Mémoire vidéo : 16 MB
- Réseau [Adapter 1]
- Mode d'accès réseau : NAT
- Avancé [Redirection de ports]
- [+]
- Nom : SSH
- Protocole : TCP
- Port hôte : 6666
- Port invité : 22
- [+]
Exercices
Cette fois, c'est à vous de jouer 😬.
Une fois la phase d'installation effectué, essayer d'atteindre chacun des objectifs ci-dessous en ne modifiant que le fichier /etc/nixos/configuration.nix.
- Trois comptes pierre, paul et jacques son créé et membre du group users.
- Pipewire s'occupe du son et il supporte les applications utilisant le daemon Jack.
- Flatpak est disponible avec le dépôt Flathub activé.
- Les applications suivante s'installe via flatpak/flathub :
- com.mattjakeman.ExtensionManager
- com.brave.Browser
- Les applications suivante sont installés :
- amberol
- vim
- wget
- mtr
- dstat
- htop
- gnome-tweaks
- kdePackages.breeze
- ssh
- Les extensions Gnome suivante sont installés et activé pour chaque utilisateur :
- appindicator
- dash-to-dock
- burn-my-windows
- tiling-shell
- L'extension burn-my-windows est configuré avec :
- 3 animations d'ouverture de fenêtre
- 2 animations de fermeture de fenêtre
- Le curseur de la souris utilise le thème Breeze_Light
- L'horloge dans la barre supérieur de Gnome affiche les secondes
- Le serveur SSH est activé
- Seul les ports 22, 80 et 443 sont ouverts en utilisant nftables
- Le système dispose d'une swap en mémoire vive (zRam)
Le simple copier/coller de votre fichier configuration.nix dans un nouveau système doit permettre de retrouver le même état de la machine avec l'ensemble des objectifs atteints.
Envoyé votre fichier configuration.nix à infres@welibre.org avant le début du prochain cours. La date et l'heure d'envoi auront une influence sur la note (plus tôt = plus de points).
