Wer Immutable-Linux denkt, meint oft NixOS: Das Linux-System ist der Quasi-Standard im Immutable-Bereich, weil es einerseits schon lange verfügbar ist und andererseits hochflexibel eingerichtet werden kann. Ideal für Software-Entwicklerinnen und -Entwickler.
Der deklarative Ansatz von NixOS erlaubt es, standardisierte Maschinen bereitzustellen per Konfigurationsdatei.
(Bild: Rentrop / NixOS.org)
Im Feld der Immutable-Linux-Distributionen hat sich NixOS (https://nixos.org/) einen erstaunlichen Ruf erarbeitet: Das System wird nicht selten in einem Atemzug mit den großen klassischen Distros genannt und ist das Vorbild, an dem sich andere unveränderliche Distributionen messen lassen müssen.
Ein Grund für die hohe Popularität ist einerseits die Tatsache, dass es sich, anders als bei den meisten anderen Immutable-Systemen, um eine gänzlich eigenständige Distribution ohne klassisches Vorbild handelt. Andererseits wäre da der namensgebende Nix-Paketmanager, der über 80.000 Pakete in das System holen kann.
Nix ist das Gegenteil von Nichts
Die größte Stärke von NixOS ist natürlich, dass das System und der Nix-Paketmanager von einer großen Entwickler-Community und namhaften Unternehmen unterstützt oder verwendet wird. Dadurch ist es das wohl größte Immutable-Linux-Projekt überhaupt – ein großer Vorteil, wenn es um die Dokumentation, den Support, die Geschwindigkeit der Weiterentwicklung und Pflege von Features geht.
Der zweite große Vorteil ist technisch begründet: NixOS besitzt eine deklarative Konfiguration, Atomare Updates und Rollbacks, besitzt eine zuverlässige Paketisolierung und bietet wie gesagt Support für eine enorme Anzahl von Software-Paketen. Das bedeutet, dass NixOS sich nicht auf Flatpaks oder ähnliche Drittlösungen verlassen muss. Stattdessen kann Software bequem über Nix installiert und gelöscht werden.
All diese Eigenschaften allein machen NixOS zu einer hervorragenden Wahl für technisch versierte Nutzer, seien es Administratoren oder Entwickler. Richtig interessant wird es aber erst, wenn man sich dem deklarativen Ansatz von NixOS widmet.
Beliebige Reproduktion
Über die Konfigurationsdatei configuration.nix in /etc/nixos/ kann ein System schnell zum Beispiel mit einer neuen Desktop-Umgebung oder proprietären Treibern (sofern diese von der Nix-Community gepflegt werden) ausgestattet werden, einfach indem eine Zeile in der Konfiguration geändert wird. Anschließend wird das System mit dem Befehl sudo nixos-rebuild switch neu gebaut.
Software-Installationen sind auf diese Weise über die configuration.nix möglich: Wird hier ein Programm hinzugefügt, kümmert sich NixOS via Nix-Paketmanager automatisch um die Installation. Wird es aus der Datei entfernt, wird es automatisch von NixOS deinstalliert. NixOS erlaubt auch Testläufe, um eine Konfiguration risikofrei zu testen.
In der Praxis ist das ausgesprochen nützlich, da sich das System über diese Konfigurationsdatei beliebig reproduzieren lässt. Das erleichtert die Installation auf größeren Rechner-Umgebungen oder auch als Entwickler-VM deutlich. Umgekehrt ist ein Backup des Systems – nicht jedoch der Daten – nur über diese Datei möglich, da es sich jederzeit mit der configuration.nix wiederherstellen lässt. Gleichzeitig lässt sich durch einfaches Kopieren oder Umbenennen einer Backup-Datei jederzeit ein bestimmter Status des Betriebssystems wiederherstellen.
Leistungsstarke Paketisolierung
Besonders die Paketisolierung des Nix-Paketmanagers macht Nix so interessant für Entwickler: Die Pakete sind in sich geschlossen, als einzelne Dateien mit den nötigen Abhängigkeiten. NixOS überschreibt nichts. Wird ein Paket kompiliert, ist es „geschlossen“, wird es aktualisiert, legt NixOS ein neues Paket an und archiviert den Vorgänger.
Verschiedene Abhängigkeiten oder Bibliotheken werden mittels Hash-Werten unterschieden und bei Bedarf entsprechend der Anforderungen der Software verwendet. Das kann angesichts der teils kryptischen Bezeichnungen etwas verwirren und kostet mitunter viel Speicherplatz, bietet aber Vorteile: Zum Beispiel lassen sich verschiedene Versionen ein und derselben Software aufsetzen.
Dank dieser Eigenart sind Softwarepakete auch beliebig auf andere NixOS-Installationen übertragbar, wodurch sich ein großer Vorteil bei der Software-Entwicklung und dem Deployment ergibt. Wenn nötig, darf natürlich mittels Garbage Collector „ausgemistet“ werden, um Speicher zu sparen.
Flakes: Pakete fest verzurren
Für Entwickler besonders interessant sind in diesem Zusammenhang die sogenannten Flakes: Nix kommt mit einer hauseigenen Nix-Programmiersprache, einer sehr einfach gehaltenen funktionalen Umgebung, um Pakete zusammenzustellen.
Flakes sind im Prinzip Sourcetrees, ähnlich einem Git-Repository, die eine Datei namens „flake.nix“ enhalten. In dieser werden standarisiert Nix-Artefakte wie Pakete oder Module festgehalten. Hier werden Abhängigkeiten explizit benannt und per nix.lock festgehalten, wodurch Pakete einheitlich sind. Software kann auf diese Weise „fest verzurrt“ weitergegeben werden.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
NixOS-Updates: Jederzeit zurück
Auch bei Updates ist NixOS als Immutable-System sehr robust. Zunächst gibt es keine automatische Update-Funktion, wobei diese mittels Eintrag in der Konfigurationsdatei nachgerüstet werden kann. Das bedeutet allerdings, dass NixOS den Anwender standardmäßig auch nicht mit Updates belästigt, die bei anderen Linuxen unvorsichtig eingesetzt möglicherweise die Paketabhängigkeiten zerschießen. Dadurch ist das System extrem zuverlässig.
Beim Update hat NixOS noch eine interessante Eigenschaft: Das System wird über sogenannte Channels aktuell gehalten. Diese sind für die jeweilige NixOS-Version eingestellt, etwa 23.11. Kommt eine neuere Version heraus, können Nutzer entweder bei ihrem Versionschannel bleiben – oder den „Kanal wechseln“ und das Upgrade auf die neueste Version einspielen. Der Kanalwechsel ist dabei nur einen Handgriff in der Kommandozeile entfernt. Wie üblich bei Immutable-Systemen bleibt die Ursprungskonfiguration dabei erhalten – und kann beim Start ausgewählt werden.
Fazit: An NixOS kommen Entwickler kaum vorbei
Eine große Community, breite Unterstützung durch Entwickler und Industrie, zahlreiche intelligente Features für die Software-Entwicklung: NixOS ist ein Linux, das für sich steht und Entwicklern das Leben leichter machen kann. Die Dokumentation wiederum hilft nicht in jedem Fall weiter.
Dank der deklarativen Struktur und der Möglichkeit, Nix-Packages fest zu verzurren, ist NixOS nicht nur sehr stabil, sondern gleichzeitig auch flexibel einsetzbar. Übrigens: Nix geht auch ohne Linux, der Paketmanager ist auch für Windows, MacOS und als Docker-Image erhältlich.