NIX – Ein weiterer third-party Packagemanager?
In der Welt der Linux-Paketmanager gibt es viele Optionen, darunter auch bekannte Namen wie Flatpak und Snapd. Doch es gibt einen relativ neuen Player auf dem Spielfeld – Nix. Doch, was ist Nix überhaupt bzw. wo kommt Nix her?
Ursprünglich wurde Nix als Paketmanager für das NixOS-Betriebssystem konzipiert. NixOS ist eine Linux-Distribution, bei der das gesamte System und die Softwarepakete mit dem Nix-Paketmanager verwaltet werden. Das Ziel war es, ein System zu schaffen, das Konfigurationen unterstützt und Änderungen leicht rückgängig gemacht werden können.
Im Laufe der Zeit wurde der Nix-Paketmanager jedoch weiterentwickelt und kann nun auch auf anderen Linux-Distributionen verwendet werden.
Flatpak, Snapd und nun auch noch Nix? Wo ist denn da der Unterschied?
Nix vs. Flatpak und Snapd: Flatpak und Snapd sind bereits etablierte Paketmanager, die auf verschiedenen Linux-Distributionen weit verbreitet sind. Sie bieten vorkonfigurierte Pakete an, die unabhängig vom zugrunde liegenden Betriebssystem laufen – das ist besonders hilfreich, wenn man viele verschiedene Distributionen simultan verwendet. Das ermöglicht eine einfache Installation und eine gute Portabilität der Anwendungen. Flatpak und Snapd haben zweifellos ihre Vorteile, insbesondere wenn es darum geht, schnell Anwendungen zum Laufen zu bringen.
Nix hingegen verfolgt einen anderen Ansatz. Statt fertige Pakete anzubieten, bietet Nix eine “funktionale” Paketverwaltung an. Das bedeutet, dass Nix jedes Paket von Grund auf neu baut, wodurch maximale Kontrolle über die Paketumgebung und ihre Abhängigkeiten gewährleistet wird. Dieser Ansatz ermöglicht es Entwicklern und fortgeschrittenen Benutzern, unterschiedliche Versionen von Paketen nebeneinander zu betreiben, ohne dass es zu Konflikten kommt.
Nix hat dabei entscheidende Vorteile, neben dem komplett offenen und aktuellen Paketen, die es dort zu finden gibt, denn Snapd und Flatpaks haben oft das Problem, dass die Pakete zu alt sind – oder auch gar nicht funktionieren. Noch dazu hat Snapd einen closed-source Backend, was oftmals nicht gerne gesehen wird. Zwei eindeutige Vorteile wären zum Beispiel:
- Reproduzierbare Builds: Nix ermöglicht reproduzierbare Builds, was bedeutet, dass eine bestimmte Softwareversion mit ihren exakten Abhängigkeiten und Konfigurationen reproduziert werden kann, unabhängig von Änderungen in der Umgebung oder anderen Faktoren. Das ist besonders nützlich für Entwickler, die sicherstellen möchten, dass ihre Software in jeder Umgebung konsistent funktioniert.
- Rollbacks: Nix ermöglicht es dir, zu vorherigen Versionen von Paketen oder des gesamten Systems zurückzukehren. Wenn ein Update Probleme verursacht, kannst du einfach auf eine frühere, funktionierende Version wechseln.
Auch die Vielfalt an Paketen ist hier klar zu loben, so macht die Diversität schon fast dem AUR (Arch User Repository) Konkurenz. Noch dazu ist es recht leicht zu installieren, ein kurzer Blick auf die Website genügt um herauszufinden, dass lediglich ein einziger Command benötigt wird. Wer also auf der Suche nach einem Third-Party-Manager ist, um möglicherweise verschiedene Linux Distributionen zeitgleich mit den gleichen Paketen zu versorgen, wird mit Nix eindeutig die bessere Wahl treffen.