NixOS 18.09
Voir aussi : vidéo youtube - dépôt git
NixOS est une distribution linux reprenant les principes de la programmation fonctionnelle. Le système est configuré de façon déclarative en composant les différents réglages, ce qui facilite la mise-à-jour, la reproductibilité, le déploiement…
NixOS propose deux types de canaux logiciels : un canal de développement (unstable) et des releases fixées tous les 6 mois. Ce tutoriel présente la release 18.09 : nouveautés, installation complète, migration depuis une ancienne version.
Nouveautés de NixOS 18.09
mises-à-jour principales : nix-2.1, glibc-2.27, systemd-239, gnome-3.28, kde-5.13
ajout d’un support de firejail (système de sandboxing de sécurité)
support des canaux utilisateurs dans les commandes
nix-build
etnix-shell
mise-à-jour de nombreux paquets et services…
Installation
- booter sur l’image d’installation :
loadkeys fr
cfdisk /dev/sda # par exemple, sda1 pour / et sda2 pour swap
mkswap -L swap /dev/sda2
swapon /dev/sda2
mkfs.ext4 -L nixos /dev/sda1
mount /dev/sda1 /mnt
nixos-generate-config --root /mnt
nano /mnt/etc/nixos/configuration.nix # régler les options voulues
nixos-install
poweroff
- exemple de
configuration.nix
:
{ config, pkgs, ... }: {
imports = [ ./hardware-configuration.nix ];
boot.loader.grub = {
enable = true;
version = 2;
device = "/dev/sda";
};
networking.hostName = "nixos";
i18n = {
consoleFont = "Lat2-Terminus16";
consoleKeyMap = "fr";
defaultLocale = "fr_FR.UTF-8";
};
time.timeZone = "Europe/Paris";
environment.systemPackages = with pkgs; [
vim wget
firefox htop sudo ];
sound.enable = true;
hardware.pulseaudio.enable = true;
services.xserver = {
enable = true;
layout = "fr";
displayManager.lightdm.enable = true;
desktopManager.xfce.enable = true;
};
system.stateVersion = "18.09";
}
- la première fois, se connecter en root et créer un compte utilisateur (par exemple,
toto
) :
useradd -m -G wheel toto
passwd toto
- se reconnecter avec le compte créé et ajouter une configuration utilisateur :
mkdir -p ~/.config/nixpkgs
nano ~/.config/nixpkgs/config.nix # écrire un paquet "myPackages"
nix-env -iA nixos.myPackages
- exemple de
config.nix
:
{
packageOverrides = pkgs: with pkgs; rec {
myPackages = buildEnv {
name = "myPackages";
paths = [
geany
python3Packages.glances
];
};
};
}
Migration depuis une version précédente
- mettre à jour la version dans le fichier de configuration système :
sudo nano /etc/nixos/configuration.nix # system.stateVersion = "18.09";
- sélectionner le canal 18.09 :
sudo nix-channel --add https://nixos.org/channels/nixos-18.09 nixos
- lancer la migration :
sudo nixos-rebuild switch --upgrade
- rebooter et mettre à jour la configuration utilisateur :
nix-env -u --always
- si tout va bien, nettoyer le store de paquets :
sudo nix-collect-garbage -d