Im letzten Teil unserer Artikelserie zu NixOS fassen wir zusammen, für wen NixOS geeignet ist und für wen möglicherweise auch eher nicht. Die ersten drei Teile befassen sich unter anderem mit den Grundlagen eines deklarativen Betriebssystems, der Installation und Konfiguration von NixOS sowie den Besonderheiten der Paketverwaltung.
NixOS könnte gut geeignet sein für diejenigen, die…
- gerne sehr detaillierte Kontrolle über ihr System haben möchten.
- ein sauberes System haben möchten, auf dem früher getätigte Einstellungen nicht vergessen werden können und später zu Problemen führen, weil sie zentral und deklarativ gesetzt werden. Wer wie ich den deklarativen, anti-imperativen Ansatz auf die Spitze treiben will, kann sogar die Dateisystemwurzel bei jedem Neustart leeren und neu deklarativ generieren lassen, beispielsweise indem sie als tmpfs eingerichtet wird.
- ein besonders zuverlässiges System haben wollen. Der Nix-Paketmanager verhindert prinzipbedingt, Konflikte von Paketen sehr gut.
- viel herumexperimentieren möchten, ohne ihr System in Probleme zu manövrieren. Mit nix-shell lassen sich Programme ausprobieren, ohne sie zu installieren. Ich bin mehrmals zwischen Gnome und KDE gewechselt, indem ich einfach die Zeilen zur Desktopumgebung und dem Displaymanager in configuration.nix austauschte. Ein sudo nixos-rebuild boot und einen Reboot später landete ich ohne jegliche Fehler oder weitere Umstände im anderen Displaymanger und in der anderen Desktopumgebung. Nicht einmal die in Gnome und KDE jeweils integrierten Anwendungen müllten die andere zu. Auch auf das Rollback trifft das tadellos zu.
- Anwendungsprogramme benutzerweise installierbar haben möchten. Jeder Benutzer kann mit nix-env selbst Software installieren, ohne dabei Administratorrechte zu benötigen. Die Software steht dann nur dem einen Nutzer zur Verfügung.
- mehrere Rechner möglichst identisch konfigurieren wollen, indem dieselbe Konfigurationsdatei auf alle Rechner angewandt wird.
- zukünftig neue Rechner mit derselben Software und Einstellungen einrichten wollen wie ihren derzeitigen. Anstatt entweder sämtliche installierte Software herauszufinden und nachzuinstallieren oder ein Systemimage komplett zu klonen und damit auf eine frische Linuxinstanz zu verzichten, kann schon bei der Installation einfach die bisherige Konfiguration eingefügt und nur ggf. die hardwarespezifischen Zeilen aus der automatisch generierten Konfiguration übernehmen.
NixOS ist möglicherweise weniger geeignet für diejenigen, die…
- lieber mit GUI-Werkzeugen arbeiten als mit Konfigurationsdateien und Befehlen. In der Alltagsbenutzung wird man zwar weitestgehend ohne Kommandozeile auskommen, aber für die Installation und Teile der Konfiguration ist sie nötig.
- zum allerersten Mal Linux nutzen. In dem Fall ist es allerdings unwahrscheinlich, dass man ausgerechnet NixOS ins Auge gefasst hat.
- den imperativen Ansatz bevorzugen. Er ist zwar zu grossen Teilen auch mit NixOS möglich, empfohlen ist hier aber deklarative Vorgehensweise.
- nicht die Motivation haben, sich die bei NixOS neu zu lernenden Dinge anzueignen. Die Lernhürde ist nicht zu unterschätzen, aber andererseits auch nicht immens und definitiv lohnend. Nach einem knappen Jahr des Linux-Kennenlernens mit Debian wechselte ich zu NixOS und brauchte dann 10-20 Abendstunden, um mich mit den Eigenheiten von NixOS zurechtzufinden. Seitdem möchte ich das deklarative Konzept nicht mehr missen, und lerne immer mehr tolle Optionen kennen.
- sehr wenig Speicherplatz haben.
Ein paar der Alternativen zu NixOS sind:
- Fedora Silverblue: Diese sehr benutzerfreundliche Distribution ist immutable, es sind also, wie übrigens auch bei NixOS, die meisten Systemdateien im Betrieb unabänderbar. Neue Anwendungen sind als Flatpak zu beziehen; die selten nötigen Änderungen am Basissystem erfordern bei Silverblue sogar immer einen Neustart. Die Ähnlichkeiten zu NixOS sind die integrierten Rollbacks-Bootoptionen und die hohe Zuverlässigkeit durch Sauberhaltung des Systems. Die Immutabilität bei NixOS ist weniger strikt als bei Silverblue, letzteres hat aber keine zentrale deklarative Konfiguration. Statt der nix-shell ist hier das Werkzeug toolbx zum Nutzen nicht ins System integrierter Software verfügbar.
- Fedora Kinoite: Der jüngere Bruder von Fedora Silverblue nutzt KDE Plasma statt Gnome.
- GNU Guix System: Von NixOS inspiriert, setzt diese besonders auf freie Software fokussierte Distribution die gleichen Konzepte mit eigenen Implementierungen und Werkzeugen um. Ausserdem setzt es statt systemd GNU Daemon Shepherd als sein Init-System ein. Diese Distribution wird auch von der FSF empfohlen.
Ein paar Fun Facts. Schon gewusst, dass…
- NixOS eine Variante für Mobilgeräte hat? Leider werden recht wenige Geräte unterstützt.
- die Softwarerepositories von Nix sowohl zu den grössten als auch aktuellsten der Linuxwelt gehören?
- der Nix-Paketmanager auch auf vielen anderen Distributionen, und sogar auf Apples MacOS installierbar ist? Das bringt diesen zwar nicht die Reproduzierbarkeit und Konfigurierbarkeit von NixOS, aber zumindest nix-env, nix-shell etc.
Links:
https://nixos.org/
https://silverblue.fedoraproject.org/
https://kinoite.fedoraproject.org/
https://guix.gnu.org/
https://mobile.nixos.org/
https://repology.org/
Vielen Dank, dass Ihr mich auf NixOS aufmerksam und neugierig gemacht habt. Ich hatte davon zwar schon im Vrübergehen gehört, aber die Beschreibung in der Artikelserie hat mich überzeugt.
Mein erster Versuch auf einer externen Platte lief schon mal recht gut (muss nur mal schauen, wie ich dauerhaft auf NEO umstelle, das hat noch nicht geklappt).
Jetzt im Dezember stand eh der Kauf einer SSD für meinen PC an… nun werden es wohl eher zwei und ich werde NixOS erstmal parallel zu Arch verwenden, bis ich es so hinbekomme, dass es für mich passt.
Viel Spass dir damit! Ich hoffe, es überzeugt dich auch in der Praxis.
Ich weiß, dass es nicht jedermanns Sache ist, man muss auch etwas umdenken. Aber für den ein oder anderen Linuxnutzer ist es, wenn man mal weiß, wie es geht, ein sehr schickes System.
Ich kam von Debian zu Nix. Vielleicht sollte ich mich auch mal um der Erfahrung willen an ein virt. Arch wagen ;)
Ich wusste bisher noch nicht so richtig, wie ich NixOS einordnen sollte. Diese Artikel-Serie hat viel Klarheit verschaft. Danke, an dieser Stelle. Meiner Einschätzung nach wohl primär für Entwickler geeignet. Übrigens : distrowatch vermeldete heute die neue Version 21.11
Ich bin alles andere als ein Entwickler, eher Normalnutzer, allerdings mit IT-Vorkenntnissen und Technikaffinität. Aber richtig ist, dass einige der Details an NixOS Entwickler als primäre Zielgruppe haben, gerade auch nix-shell und die experimentellen Flakes. Die Kombi aus großer Robustheit und Anpassbarkeit und das einfache Übernehmen der Konfiguration auf andere Rechner sind aber auch für mich als Privatanwender, der nur wenig programmiert, sehr nützlich.
Danke!
Sehr cool und interessant. Mich würde eine Beschreibung einer Beispielkonfiguration interessieren, damit ich deren Syntax und Methoden einschätzen kann.