💡 Hint: To show the presentation in Fullscreen press "F".

Nix kann’s besser

Der naechste Schritt in Linux


Präsentiert von WieErWill



Linux Info Tag – 26. April 2025

windows_bluescreen

Veraltete Pakete & Dephasing

nixos_ubuntu_packages_have_been_kept_back

Auf zu besseren Loesungen

Was wäre, wenn Software stabil und reproduzierbar wäre?

nix_kanns_besser_titleimage

Was ist Nix?

Ein deklarativer Paketmanager,

der Software isoliert

und reproduzierbar im Nix-Store installiert

– plattformunabhängig und stabil.

Nix: Der funktionale Paketmanager

klassische Paketmanager

APT, YUM und Co. installieren global Änderungen

usr
├── bin
│   └── curl
│   └── zsh
├── share
│   └── man
│       └── man1
│           └── curl.1.gz
├── lib
│   └── x86_64-linux-gnu
│       └── libcurl.so.4

führt zu Konflikten – bekannt als “Dependency Hell”

Magie des Nix Store

Nix installiert Pakete isoliert im /nix/store

/nix/store/<hash>-<name>-<version>/

/nix/store/
├── abc123-zsh-2.10
│   ├── bin/
│   │   └── zsh
│   └── share/
│       └── doc/
├── def456-zsh-2.11
│   ├── bin/
│   │   └── zsh
│   └── share/
│       └── doc/

verschiedene Versionen können gleichzeitig existieren

=> keine Versionskonflikte und Stabilität

=> Nix vermeidet Dependency Hell

Atomare Updates

Updates geschehen nicht in-place

neue Generationen, sodass System immer in einem intakten Zustand bleibt

Jeder Update-Schritt ist komplett atomar

einfache, nachvollziehbare Upgrades

Rollbacks - Sicherheit auf Abruf

mit nix-env —rollback jederzeit zurück

stabiles System garantiert schnell erreichbar

=> ein echter Sicherheitsmechanismus


Garbage Collector: nix-collect-garbage -d

Isolierte Profile

jeder Nutzer erhält eigenes Profil

keine Konflikte und isolierte Umgegungen

nix_profiles

Vorteile von Nix

  • Reproduzierbare Builds
  • Sichere, isolierte Installationen
  • Atomare Updates und einfache Rollbacks
  • Unabhängige Nutzerprofile

=> Zeitersparnis, Sicherheit und Stabilität

Installation von Nix

Installiere Nix neben dem bestehenden System

ohne Eingriff in die Systemverwaltung

  $ curl -L https://nixos.org/nix/install | sh -s -- --daemon
    ...
  $ nix --version
    nix (Nix) 2.11.0

Nicht-invasiv und parallel zu bestehenden Systemen

Erste Befehle

nix-env für permanente Installationen

Bsp: nix-env -i hello – Installiert Programm “hello”


oder


nix-shell für temporäre, isolierte Umgebungen

Bsp: nix-shell -p gcc – Startet temporäre Shell mit gcc

Ad hoc shell env

Schnell, reproduzierbar, isoliert

$ cowsay no can do
The program ‘cowsay’ is currently not installed.

$ echo no chance | lolcat
The program ‘lolcat’ is currently not installed.

$ nix-shell -p cowsay lolcat
these 3 derivations will be built:
  /nix/store/zx1j8gchgwzfjn7sr4r8yxb7a0afkjdg-builder.pl.drv
  /nix/store/h9sbaa2k8ivnihw2czhl5b58k0f7fsfh-lolcat-100.0.1.drv
  ...

(nix)$ cowsay Hello, Nix! | lolcat
Hello, Nix!

(nix)$ exit
exit

Nix Packages

über 120’000 Pakete verfügbar

Verschiedene Versionen und Konfigurationen

nix_packages

Home Manager

verwalte die Umgebung als deklarativen Code

definiere Programme und Einstellungen zentral

ideal zur Reproduzierbarkeit und Migration

$ nix-channel --add \
  https://github.com/nix-community/home-manager/archive/release-24.11.tar.gz \
  home-manager
$ nix-channel --update
$ nix-shell '\<home-manager\>' -A install

Home Manager-Config

einfache Konfiguration für Firefox, Vim, Git und ZSH

{ pkgs, ... }:
{
  home.packages = [ pkgs.firefox pkgs.vim ];
  programs.git = {
    enable = true;
    userName = "Max Mustermann";
    userEmail = "max@beispiel.de";
  };
  programs.zsh.enable = true;
}

Versionskontrolle und Reproduzierbarkeit

Was ist NixOS?

eine Linux-Distribution,

die den Nix-Paketmanager für das gesamte System nutzt.

Die deklarative Systemkonfiguration garantiert Stabilität

NixOS: Deklarative Konfiguration

Alle Systemkomponenten – von Diensten bis zu Paketen – werden in configuration.nix definiert
(oder über Home-Manager)

{
  services.openssh.enable = true;
  networking.firewall.enable = true;
  environment.systemPackages = [ pkgs.tmux pkgs.git ];
}

Nachvollziehbar und Wiederherstellbar

NixOS auf dem Steam Deck

Unser Experiment: NixOS auf einem Steam Deck zeigt, wie flexibel und robust das System auch auf mobilen Geräten ist.

steam_deck_large

Erkenntnisse aus dem Experiment

Robust, reproduzierbar und weniger stressig
Vorteile deklarativer Systemverwaltung

nix_gitea_steamos

Ressourcen & Dokumentation

  • Offizielle NixOS-Dokumentation: nixos.org/manual
  • NixOS Wiki: nixos.wiki
  • Tutorials & Blogartikel (z.B. Nix Pills, c’t Artikel)
  • Community: Eine engagierte Gemeinschaft unterstützt alle über Foren, Chats und regelmäßige Treffen – ideal, um schnell Hilfe zu finden.

Ausblick in die Zukunft

Nix entwickelt sich ständig weiter – mit innovativen Features wie Flakes, DevEnv und verbesserten Dev-Tools.
Die Zukunft der Softwareverwaltung ist deklarativ, nachvollziehbar und sicher.

nix_osterei
die Zukunfts ist Nix

Zusammenfassung Nix(Os)

  • Reproduzierbare, sichere Softwareumgebungen
  • Isolierte Installationen und atomare Updates
  • Home Manager und NixOS erweitern den Nutzen
  • Community und Ressourcen unterstützen den Einstieg

Probier Nix selbst aus!
Wage den Schritt in eine neue Ära der Softwareverwaltung

Zeit für eure Fragen
& Diskussionen

QR code for https://wieerwill.dev/vcard.vcf

WieErWill.dev/vcard.vcf

WieErWill.dev