NixOS 18.09

Voir aussi : vidéo peertube - 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

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
{ 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; [
    firefox htop sudo vim wget
  ];

  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";
}
useradd -m -G wheel toto
passwd toto
mkdir -p ~/.config/nixpkgs
nano ~/.config/nixpkgs/config.nix    # écrire un paquet "myPackages"
nix-env -iA nixos.myPackages
{
  packageOverrides = pkgs: with pkgs; rec {
    myPackages = buildEnv {
      name = "myPackages";
      paths = [
        geany
        python3Packages.glances
      ];
    };
  };
}

Migration depuis une version précédente

sudo nano /etc/nixos/configuration.nix    # system.stateVersion = "18.09";
sudo nix-channel --add https://nixos.org/channels/nixos-18.09 nixos
sudo nixos-rebuild switch --upgrade
nix-env -u --always
sudo nix-collect-garbage -d