NixOS - Setup-Guide, Teil 1

  Reto   Lesezeit: 11 Minuten  🗪 24 Kommentare Auf Mastodon ansehen

Das ist der Auftakt zu einem dreiteiligen Set-up-Guide. Es geht bei Null los und endet in einem Multi-Host-Set-up. Im Teil 1 beschreibe ich die NixOS-Idee, also den brillanten Paradigmenwechsel, sowie erste Schritte für Ein- und Umsteiger.

nixos - setup-guide, teil 1

Ausgangslage

Wer meine letzten Beiträge verfolgt hat, dem ist es sicher nicht verborgen geblieben, dass ich für meinen neuen Rechner ein System gesucht hatte, welches die Lebensdauer der Hardware ohne große Eingriffe oder gar Neuinstallation übersteht. Und damit ich mich nicht verzettele, ist es mir stets wichtig, auf jedem meiner Rechner die gleiche Distribution zu haben (das ist unendlich cool und einfach mit NixOS! – kommt in Teil 3).

So landete ich dann irgendwann sehr zuversichtlich bei Gentoo. Wenn überhaupt, dann schafft das mutmaßlich nur der Paketmanager Portage über so einen langen Zeitraum; Belege dafür fand ich ausreichend. Allerdings muss man zur Einlösung dieses Stabilitäts-Versprechens die Systempflege absolut akkurat betreiben, auf jedem Rechner einzeln – das hat mich vollkommen überfordert, zeitlich und auch von der Kompetenz her.

Das Distro-Hopping ist nun aber endgültig beendet. NixOS übererfüllt meine Anforderungen – es ist brillant. Und entgegen häufiger Zuschreibungen kann ich berichten: NixOS ist (relativ) easy, weil die Logik so leicht nachvollziehbar ist. Neues Programm installieren: Einfach den entsprechenden Paketnamen in die Konfigurationsdatei schreiben. Update: Einen Befehl eingeben, that's it. Systempflege ist ein No-brainer.

Nur das initiale Set-up benötigt einmalig etwas Lernkurverei. Wenigstens in Grundzügen sollte man daher verstehen, wie NixOS tickt. Deshalb zunächst ein erster beschreibender Theorieteil, aber sehr bildhaft.

Fragmentierung ist unausweichlich

Wir alle sind mit dem imperativen Bauen unserer Systeme aufgewachsen und haben das nie hinterfragt. Für uns ist es selbstverständlich, dass wir uns das System nach unseren Vorstellungen, Vorlieben und Notwendigkeiten (Treiber etc.) Schritt für Schritt selbst zusammenbasteln, und das wichtigste Werkzeug dafür ist der Paketmanager. Manchmal ärgern wir uns, wenn das System eines Tages nicht die gewohnte oder erwartete Funktionalität und/oder Performance liefert. Im Extremfall setzen wir die Kiste dann neu auf; das ist eben so, damit hat man sich abgefunden. Viele von uns kennen es ganz krass von Windows. Nach geraumer Zeit der Nutzung wird das System unerträglich langsam und Fehlermeldungen häufen sich, die Neuinstallation wird unumgänglich. Aber auch Linux ist von diesem Verhalten nicht frei – keineswegs. Woran liegt das eigentlich?

(1) Der "Snowflake"-Effekt Jedes Mal, wenn wir eine Veränderung des Systems vornehmen, also ein Paket installieren, die Konfiguration verändern, einen Patch laufen lassen etc., wird das System immer individueller und einzigartiger. Wie eine Schneeflocke: Unmöglich, eine solche exakt zu kopieren oder wiederherzustellen, sollte diese schmelzen. In der Informatik ist das der "Mutable State", der veränderte und veränderbare Zustand. Der tägliche Wahnsinn für Servicetechniker:innen, egal ob vor Ort oder über Hotline. Unwahrscheinlich, dass User im Dialog alle je gemachten Eingaben und Änderungen beschreiben können, um dem Fehler auf die Spur zu kommen. Oft bleibt dann eben nur, den einen ultimativen definierten (Ur-)Zustand durch Neuinstallation herzustellen.

So viel sei schon mal verraten: Es ist kein Zufall, dass DIE herausragende Weiterentwicklung von NixOS "Flakes" heißt. Und das Logo ... schaut es mal an. Wir kommen im Teil 2 drauf.

(2) Die "Dependency Hell" Die "Hölle" bricht immer los, wenn man ein Systemupdate macht. Die neue Programmversion sagt, ich benötige die Laufzeitumgebung 2.0 und den Treiber XY. Es wird also auf 2.0 und XY aktualisiert. Ein anderes Programm ist aber nur für 1.5 optimiert und schon wird es kritisch. Vielleicht doch wieder versuchen, den Ursprungszustand herzustellen? Es ist ein Teufelskreis. Je nachdem, wie gut der Paketmanager mit solchen Herausforderungen umgehen kann, kommen die Probleme früher oder später, aber sie kommen; spätestens dann, wenn die Summe der Konflikte ein kritisches Maß überschritten hat.

Systeme fragmentieren also, weil sie versuchen, die globale Ordnung in einer Welt voller widersprüchlicher Anforderungen mit vielen einzelnen imperativen Gegenmaßnahmen zu halten. So kennen wir das bei allen gängigen Betriebssystemen (und der Weltordnung, welche auch zunehmend fragiler wird).

Der Paradigmenwechsel von Nix bzw. NixOS

Wenn die Erfahrung zeigt, dass die imperative Verwaltung unausweichlich problembehaftet ist, lohnt es sich vielleicht nicht, zwanghaft am System festzuhalten, sondern das Grundsätzliche mal neu zu denken. Ein solcher Paradigmenwechsel wurde mit Nix bzw. NixOS umgesetzt. Und zwar fabelhaft – keep it simple, but not simpler than it needs to be.

[!Note] Nix ist ein Paketmanager, welcher distributions- und sogar betriebssystemübergreifend verwendet werden kann. Maximal wirksam und konsequent ist es, wenn auch die Betriebssystem-Komponenten gemäß des neuen Ansatzes verwaltet werden, daher lieber gleich NixOS.

Ich möchte versuchen, das neue Paradigma am Beispiel einer Großküche in einem Restaurant bildhaft zu erklären.

Nach einigen Monaten oder Jahren des Betriebs quellen Schränke und Lagerräume mit angeschafften Kochutensilien, Gewürzen etc. völlig über. Man hat kaum Platz zum Arbeiten und sucht ewig nach den richtigen Zutaten. Reibscheiben verschiedener Gemüsehobel liegen nebeneinander, kompatibel sind diese nicht, dauernd vergreift man sich und es klemmt; Gewürze verstecken sich hinter anderen Zutaten im Schrank, das pure Chaos. Der Betrieb läuft einfach nicht rund, es werden Fehler gemacht und alles dauert länger.

Da die Situation nicht mehr tragbar ist, wechselt man zu einem neuen Küchenchef, dem Starkoch Nixos. Was man üblicherweise alles in einer Restaurantküche parat haben sollte und wie der Zustand der Küche zu dem geworden ist, wie er sich momentan darstellt, interessiert ihn nicht die Bohne! Nixos vollzieht einen vollständigen Paradigmenwechsel und stellt auf eine rein deklarative und funktionale Systematik um. Es gibt nur eine einzige Quelle der Wahrheit und das ist die Speisekarte!

Ein NixOS-System wird deterministisch aus hauptsächlich einer zentralen Konfigurationsdatei (der configuration.nix) abgeleitet. Mit dieser Textdatei beschreibt der User deklarativ den gewünschten funktionalen Endzustand seines Systems. Und dies ist die einzige Quelle der Wahrheit. Wichtig für das Verständnis: Man baut das System nicht mehr selbst (das lässt man NixOS machen), sondern man beschreibt es nur - in einem vorgeschriebenen Syntax.

Die Speisekarte definiert somit den gesamten Zustand. Damit wird die Küche ausschließlich mit den Kochutensilien und mit den Zutaten bestückt, die zur Herstellung der beschriebenen Speisen in reproduzierbarer Qualität notwendig sind.

Über eine clevere Zuordnungsfunktion, abgebildet durch eine für jedes Gericht individuelle "Teilenummer", wird sichtbar, dass z. B. Curry von 'Speise 1' und 'Speise 2' gebraucht wird. Das Rezept wird also numerisch verschlüsselt. Wir kennen so was von Personalnummern, die sich vielleicht durch unseren Geburtstag und den Anfangsbuchstaben des Familiennamens mit aufbauen; die Nummer ist also ein Informationsträger.

Bei NixOS ist das ein kryptografischer 160-Bit-Hash, der aus allen Parametern berechnet wird, also alle Abhängigkeiten (sogar die verwendete glibc-Version oder den Compiler) einbezieht.

Wenn die Speisekarte wechselt, was dann? Die Küche wird nach den Anforderungen der neuen Karte (also der veränderten configuration.nix) konsequent umgeräumt, die Speisekarte ist die einzige Quelle der Wahrheit. Den Plan dazu liefert eben diese individuelle und eindeutige "Teilenummer" für jedes Gericht, in welcher alle Informationen (Curry …, Gemüsehobel …) als numerisch-mathematisches Rezept verschlüsselt sind.

Starkoch Nixos lässt nach dem Editieren der neuen Speisekarte eine Update-Routine über alle Nummern laufen. Wird im Ergebnis (reine, eindeutige Mathematik) dann zu manchen Zutaten und Utensilien keine Zuordnung ausgespuckt, fliegt z. B. Curry aus der Küche raus. Benötigt man hingegen noch ein spezielles Küchengerät für eine Speise, wird es angeschafft und an den Zubereitungsplatz der zugehörigen Speise gestellt.

Nix übersetzt die neue Beschreibung in seiner neuen Gesamtheit in eine präzise, maschinenlesbare Bauanleitung, die alle notwendigen Eingaben, Abhängigkeiten und Build-Schritte spezifiziert.

Nixos verlangt außerdem, dass alle Zutaten und Utensilien zur Zubereitung von 'Speise 1' gesammelt an einem definierten und abgegrenzten Zubereitungsplatz für eben diese bereitliegen. Und dieses Ordnungssystem wird grundsätzlich für alle Speisen so angewendet.

Ein zentraler Baustein zur Vermeidung von Systemfragmentierung ist der Nix-Store in unserem Verzeichnisbaum, er ist das Lager für Pakete und Konfigurationsdateien. Der User muss hier nicht (und darf auch nicht) eingreifen, das erledigt NixOS für uns. Jedes Paket und jede Systemdatei wird dort in einem eigenen, isolierten Verzeichnis gespeichert.

Und tatsächlich funktioniert die Systemgastronomie auch nach solchen Grundsätzen. Schaut euch nur die Küchen – nein, falsch – schaut euch die Gerichte von McDoof an unterschiedlichen Orten an: identisch.

Angenommen, Starkoch Nixos möchte eine weltweite Kette "McNixos" aufbauen, dann muss er allerdings berücksichtigen, dass sich die Gebäude baulich unterscheiden und noch viele andere abweichende äußerliche Rahmenbedingungen vorhanden sind. Diese Rahmenbedingungen für eine neue Filiale müssen im Lastenheft für den Bau dokumentiert und berücksichtigt werden.

Bei der Installation erfasst NixOS sehr präzise die Hardware und schreibt alle Informationen in die Datei hardware-configuration.nix. Auch diese Informationen werden mit in den Hash aufgenommen und führen beim Bau des Systems z.B. zur Installation von Treibern.

Wenn die Rahmenbedingungen bekannt sind und somit durch Maßnahmen berücksichtigt werden können, ist es möglich, die Speisekarte an jedem beliebigen Ort identisch gleich umzusetzen.

Die Quelle der Wahrheit, also die configuration.nix bestimmt auch auf einer anderen Hardware wie mit den veränderten Parametern gerechnet werden muss. Mathematisch exakt entsteht wieder das gleiche Ergebnis: ein Bit-genau identisches System wird gebaut, vollständig reproduzierbar.

Kurz zusammengefasst: Der User beschreibt, was er vorfinden möchte (configuration.nix), das Installationsprogramm klärt die Rahmenbedingungen (hardware-configuration.nix), NixOS selbst übersetzt das in eine maschinenlesbare Bauanleitung und administriert auch das System und den Nix-Store rein mathematisch und eindeutig reproduzierbar über die Hashes. All das wird durch einen einzigen Befehl des Users ausgelöst: sudo nixos-rebuild switch.

Das ist der Grundaufbau. Sofern mehrere User die gleiche Hardware nutzen (oder auch bei der üblichen Trennung zwischen Root und User) wird es für den einzelnen User noch einmal einfacher. Er beschreibt seine individuelle Wohnung in dem Nix-Haus dann nur über eine einzige Datei, der home.nix. Seht das ausschließliche Arbeiten mit der configuration.nix⁣ also nicht als Endpunkt, sondern nur als Fingerübung oder Zwischenlösung. Dazu aber erst in der nächsten Folge.

Eine Schnellstart-Anleitung

Installation

  1. Graphical ISO image von https://nixos.org/download herunterladen (dazu bis zu NixOS runter scrollen)
  2. ISO auf USB-Stick schreiben und von diesem booten
  3. Internetverbindung herstellen
  4. Dem grafischen Installer wie gewohnt folgen. Empfehlung: "allow unfree software" zulassen
  5. Reboot
  6. Internetverbindung herstellen

Wer es später einfacher bei der Übernahme meiner Konfiguration haben möchte, soll zunächst "nixos" als Hostname belassen.

Erste Konfigurationsschritte und Kennenlernen des Systems

[!Vorab] Man kann nichts kaputt machen. Selbst wenn man seine configuration.nix vollständig zerstört, wählt man beim Boot einfach einen vorherigen Boot-Point und man hat den alten Zustand.

Terminal öffnen und die configuration.nix im Editor (hier Nano) öffnen:

sudo nano /etc/nixos/configuration.nix

Der Aufbau der Datei sieht wie im folgenden Ausschnitt aus. Unten zwischen den zwei geschweiften Klammern ist jeweils Platz für Befehle. Hier definiere ich einmalig den Programmbereich und trage da einfach meine gewünschten Pakete ein. (Einrückungen am besten immer mit je zwei Leerzeichen, keine Tabulatoren.) NixOS hat das allergrößte(!) Repositorium, von da den richtigen Paketnamen auslesen.

{ config, pkgs, ... }:

{
  # Programme (normale Binärpakete)
  environment.systemPackages = with pkgs; [
    thunderbird          # Mailprogramm
    libreoffice-fresh    # Office-Suite (neueste Version)
    hunspell             # Rechtschreibprüfung-Engine
    hunspellDicts.de_DE  # Deutsches Wörterbuch
    mythes               # Thesaurus für LibreOffice
    languagetool         # Grammatik- und Stilprüfung
  ];

  # Firefox als NixOS-Modul (kein Eintrag in systemPackages nötig)
  programs.firefox = {
    enable = true;
    languagePacks = [ "de" ];
  };

}

Ich kann es verstehen, wenn man an dieser Stelle abbrechen möchte, weil es kompliziert aussieht. Aber bitte kurz innehalten – es ist objektiv nicht schwieriger als das Aufrufen und Bedienen eines Paketmanagers über die Kommandozeile. Für mich ist dieses Vorgehen überdies viel transparenter und einfacher nachzuvollziehen, als die Black Box eines Paketmanagers.

Speichern: STRG+O und ENTER, dann den Editor mit STRG+X verlassen.

sudo nixos-rebuild switch    # System bauen - fertig!

[!Hinweis] Warum Firefox als NixOS-Modul? Es gibt nur ganz wenige Programme, die als Modul installiert werden. Module existieren ausschließlich nur für Programme die eine tiefe Systemintegration brauchen. Und ein Browser gehört als systemimmanentes Programm dazu. Alle anderen Programme "installiert" man ganz normal als Pakete.

Deinstallieren gibt es übrigens im herkömmlichen Sinne nicht. Würde ich oben thunderbird löschen oder mit # auskommentieren, beschreibe ich ja deklarativ einen anderen gewünschten Systemzustand. Und der wird mir durch sudo nixos-rebuild switch auch wie gewünscht gebaut, also dann ohne Thunderbird.

Hat man länger nichts an der Konfiguration geändert, sollte man wenigstens gelegentlich ein Update fahren.

sudo nixos-rebuild switch --upgrade   # Turnusmäßiges Update!

Vorschläge zur Weiterarbeit

(1) Schau dir mal in Ruhe den Syntax der configuration.nix an und versuche, die Angaben und die Systematik zu verstehen. Mehr dazu auch in Teil 2. Du wirst unter anderem die Zeile i18n.defaultLocale = "de_DE.UTF-8"; sehen. Durch diese wird in allen Programmen (sofern verfügbar) die deutsche Benutzeroberfläche praktischerweise automatisch mitinstalliert (evtl. muss sie im Programm noch ausgewählt werden).

(2) Sofern bislang nicht vorhanden, hol dir einen Account bei codeberg.org und lege dort ein Repo mit dem Namen "NixOS" an. Das nutzen wir dann im Teil 2.

(3) Solltest du schon wild experimentieren oder Fragen haben: einfach Terminal-Ausgaben oder Fragen z. B. in claude.ai (Empfehlung für Linux-Themen) reinnageln … Ich bin nur ein mieser kleiner User und mache es auch so.

Quellen:

Inspiration gab mir ein Blog-Beitrag: https://joshblais.com/blog/nixos-is-the-endgame-of-distrohopping/
Offizielle Dokumentation: https://nixos.org/learn/
Titelbild und Wallpaper: https://hdqwalls.com/linux-nixos-wallpaper

Artikel der NixOS-Reihe

Tags

NixOS, Nix, Flakes

Karl Voit
Geschrieben von Karl Voit am 1. Mai 2026 um 10:40

Alles voll OK in dem Artikel und NixOS verdienst es, promotet zu werden. Abgesehen von ein paar Dingen rund um Personalwahl und fragwürdigen Sponsoren ist das eine Distro, die eine Zukunft vor sich hat.

Mein persönlicher Werdegang mit NixOS hat aber auch ein paar Nachteile aufgedeckt, dessen man sich vielleicht ebenfalls bewusst sein sollte, bevor man kopfüber in das Thema reinspringt, so wie ich es 2023 gemacht habe. Das führte dazu, dass ich massiv viel Zeit verloren habe und 2025 schlussendlich reumütig zu Debian stable zurückgekehrt bin.

Wenn euch meine Geschichte interessiert: https://karl-voit.at/2023/09/12/nix/ https://karl-voit.at/2025/08/30/end-of-my-nixos/

TL;DR: Für mich war NixOS hauptsächlich wegen fehlendem Tiefenwissen von der Nix-Sprache als auch zu vielen Problemen bei der Ausführung von einfachen, selbstgeschriebenen Python-Scripten leider nix.

YMMV

j
Geschrieben von j am 2. Mai 2026 um 17:19

Wow, das hört sich schon echt anstrengend an.

Interessant, dass du Gnome und dessen Extensions cool findest. Ich habe früher lange Gnome benutzt, bin dann auf KDE gewechselt. Seit ein paar Monaten habe ich wieder Gnome auf einem Laptop und damals wie heute ist es wieder so, das Extensions irgendwann nicht mehr funktionieren und du dann keine Möglichkeit mehr hast, z. B. die Zeile oben mit Uhrzeit etc. auch auf dem externem Monitor angezeigt zu bekommnen, weil Gnome das nicht will und die Extension dafür nicht mit der aktuellen Gnome-Version kompatibel ist. Ich bevorzuge dann letztendlich schon die 100.000 Optionen von Plasma, wo ich die Dinge einstellen kann, die mir wichtig sind (und alle anderen ignoriere) und nicht Gnome, wo ich es entweder so nutze wie sie es sich vorstellen oder es wird irgendwann ein Krampf.

Tim
Geschrieben von Tim am 6. Mai 2026 um 08:16

Hmm das Extensions irgentwann nicht mehr funktionieren...wieso das? Sind die eingerostet? Kleiner Tipp bei so simplen Erweiterungen wie du sie verwendet hast, reicht es in die Meta zu gehen und selbst die Version von Hand anzuheben. Zu 99,99% wird die Erweiterung dann wieder funktionieren. Dieses Lügen-Gebashe gegenüber GNOME ist echt nicht mehr auszuhalten. GNOME ist fantastisch. Es geht uns aus dem Weg, es ist stabil, konsistet im Design, man ist damit äußerst Produktiv, es managed Kontake, Termine, Emails, geräteübergreifen, eshat ab Werk Tiling an board, es gibt haufenweeise Extensions und neuerdings kann man innerhalb von Minuten dank AI auch seine eigenen Erweitergunen erstellen. Du magst KDE, das ist prima. KDE wird auch immer besser, aber ist eine DE wie jede andere. GNOME ist anders und das ist auch gutso. Um es kurz zu sagen: Ahead of its time.

Mutant77
Geschrieben von Mutant77 am 17. Mai 2026 um 06:33

Was heißt denn "in die meta gehen"?

Kurt Andro
Geschrieben von Kurt Andro am 1. Mai 2026 um 12:20

Wow, klingt genial – Wenn das wirklich so funktioniert, ist es vermutlich die Zukunft für alle Distros!! — Und der Artikel: super gut und verständlich geschrieben!! Freu' mich schon auf Teil 2.

Adrian
Geschrieben von Adrian am 1. Mai 2026 um 12:21

Welcome zu NixOS. Ich habe vor 1 Jahr. auch den Swit h gemacht https://wyssmann.com/blog/2025/06/nixos-my-new-linux-distro/. Mittlerweile hab ich auch mein Homelab umgestellt. bin echt happy damit

evilware666
Geschrieben von evilware666 am 1. Mai 2026 um 12:55

Moin Moin

Seeehr interessante(s) Projekt/Distro. Natürlich habe ich von NixOS schon gehört, aber nicht wirklich wahrgenommen, was sich durch deinen Artikel gerade geändert hat, viele Dank dafür. Freue mich schon auf die Folge-Artikel.

Mfg: evilware666

El Pollo Diablo
Geschrieben von El Pollo Diablo am 1. Mai 2026 um 14:35

Danke für den informativen Artikel. Die Serie klingt sehr spannend und ich bleibe am Ball. 👍 NixOS steht auch noch auf meiner ToDo-Liste, doch bisher schreckte mich immer der Paradigmenwechsel gegenüber einer klassischen OS Installation ab.

Nur mal so der Neugier halber gefragt - Wie geht das mit der Wahl bzw. dem Wechsel der Desktopumgebung? Schreibe ich dann dann auch nur z.B. „Gnome“ oder „Plasma“ in die configuration.nix und aktualisiere?

kaligule
Geschrieben von kaligule am 1. Mai 2026 um 19:31

Das ist ziemlich nahe dran, ja.

services.desktopManager.plasma6.enable = true;

oder eben

services.desktopManager.gnome.enable = true;

Natürlich will man da normalerweise noch mehr einstellen, aber das ist der start und sollte direkt funktionieren.

Reto
Geschrieben von Reto am 1. Mai 2026 um 20:28

Der Desktop spielt in meiner Serie gar keine Rolle und ist beliebig austauschbar. Starte gerne mit durch und wähle bei der Installation aus der großen Auswahl einfach deine Lieblingsumgebung. Und dann schau mal in der configuration.nix was das Installationsprogramm für einen Block geschrieben hat, welcher deinen Desktop definiert. Lesen und verstehen lässt sich der Nix-Syntax ziemlich einfach, wie bei jeder Fremdsprache dauert das "sprechen" etwas länger. Im nächsten Teil kopierst du entweder meine Ergänzungen in deine configuration.nix oder du überschreibst meinen Gnome-Block mit deinem und löschst noch die Zeilen für die Gnome-Erweiterungen. Nutze die Zeit bis zum nächsten Teil und mach dich anhand der NixOS-Dokumentation noch etwas schlauer, dort sind alle Umgebungen beschrieben.

Toolted
Geschrieben von Toolted am 1. Mai 2026 um 15:15

Hallo Reto,

NixOS hatte ich mir vor ca 2 Jahren mal angesehen. Zu ungefähr der Zeit kamen viele Berichte und Potcast zu Nix. Inkl. Wortspiele. Das wird wohl Nix.

Das Konzept empfand ich interessant, jedoch mich nicht weiter dam beschäftigt. Deinen Einstieg finde ich gut und bleibe mal dran. Jetzt wo das lange Wochenende ansteht passt das ganz gut. Ich bin schon auf die Fortsetzung gespannt.

Vielen Dank für deinen Beitrag. Toolted

Daniel
Geschrieben von Daniel am 2. Mai 2026 um 20:30

Super Artikel. Sehr anschaulich geschrieben. Vielen Dank dafür. Hat mich dazu angeregt, NixOS auch mal auf meine ToDo-Liste zu setzten. Als Softwareentwickler finde ich den Ansatz super spannend und habe auch kein Problem mit dem deklarativen Ansatz. Ich freue mich ebenfalls auf die nächsten Teile der Serie.

Jules Dreki
Geschrieben von Jules Dreki am 3. Mai 2026 um 12:07

Sorry, das soll nicht verbittert oder wütend klingen, sondern ist als Tip gemeint. Das Wichtigste wäre das der Installer in Ordnung gebracht wird. Mir ist es bis jetzt nicht gelungen NIOS auf luks verschlüsselten Partitionen zu installieren. Immer wieder wird nach der Installation das Password als angeblich falsch abgelehnt.

Roland
Geschrieben von Roland am 3. Mai 2026 um 12:45

Das Konzept hinter NixOS ist spannend. In welchem Verhältnis befindet sich NixOS denn in Bezug auf https://docs.ansible.com/ und https://github.com/chef/chef und https://www.puppet.com/ und https://saltproject.io/ und https://www.terraform.io/ Welche Gemeinsamkeiten und Unterschiede gibt es zwischen den Konzepten? Kann man das überhaupt miteinander vergleichen oder sind die hier genannten eher Profi-Liga?

Armakuni
Geschrieben von Armakuni am 4. Mai 2026 um 08:25

Den Ansatz von NixOS habe ich jetzt schon öfter gelesen, gereizt hat es mich aber nie. Warum? Für mich ist dieser deklarative Ansatz kein Thema. Anfangs dachte ich auch immer, dass ich auf meinen Geräten möglichst identische Setups haben möchte. Das hat sich schnell erledigt, schon deswegen, weil es unterschiedliche Geräte (MiniPC und Notebook) sowie Leistungsklassen sind. Daher ist jedes Gerät inzwischen spezialisiert installiert. Unter Linux hatte ich noch nie (!) das Problem, dass mein System so zugemüllt war, dass ich es neu installieren musste. Das ist bei Windows ja ein fest eingebautes Feature. Wenn ich Pakete installiere und wieder entferne, dann bleiben i.d.R. nur Reste in meinem Home-Verzeichnis übrig. Da kommt zum Tragen, was ich an Linux zu schätzen weiß gegenüber Windows: Alles wird in Dateien gespeichert, sogar idealerweise in Standardformaten (INI, YAML, SQLite etc.). Nach dem Entfernen von Paketen gehe ich auch mein Home-Verzeichnis durch. Das klappt mit einem Tool wie broot ganz gut. Wenn ich da z.B. "thunderbird" eingeben würde, finde ich alle Verzeichnisse und Dateien unter .cache, .config und wo es sich sonst versteckt. Reste in /etc usw. schaue ich grob alle 3 Monate mal nach und entferne diese bei Bedarf.

Nun könnte ich bei NixOS also mein System in einem Satz Konfigurationsdateien beschreiben. Das klingt verlockend, löst aber meiner Meinung nach viele Details trotzdem nicht. Sind wirklich alle Pakete, die ich will, in NixOS vorhanden? Ich spiele da bei auf alternative Quellen wie AppImage, AUR/PPA oder direkt Binärpakete von GitHub etc. an. Bei meiner Software-Auswahl, die ich als Minimum auf einem System haben möchte, ist nicht alles zu 100% in den Distro-Quellen vorhanden. Wie NixOS sowas löst, erschließt sich mir aktuell nicht.

Ich denke, der Ansatz könnte für Server-Systeme ziemlich gut sein oder für Unternehmen, wo die Arbeitsplatz-Rechner identisch aufgebaut sein sollen. Aber im Privatanwender-Bereich sehe ich dafür wenig Nutzen.

Reto
Geschrieben von Reto am 5. Mai 2026 um 16:20

Die Individualisierung für unterschiedliche Geräte kann man ungemein elegant mit NixOS lösen. Das kommt noch - habe ich schon geplant und kommt in einer Reihe, welche sich an den Setup-Guide anschließt. Ich will mit der Reihe aber nicht werben, sondern maximal Hilfe oder Entscheidungshilfe geben. Entscheidend ist natürlich, ob du deine Software auch installieren kannst. Flatpak würde auch bei NixOS gehen (ich selbst habe das nicht eingerichtet), aber schau lieber erst mal hier: https://search.nixos.org/packages

gryps
Geschrieben von gryps am 5. Mai 2026 um 14:22

Das scheint nicht für ältere Geräte gedacht. Wollte das gerade auf einem Dell Vostro 1510 installieren, aber der Start der Installation wurde abgelehnt, weil nicht wenigstens 3GB Arbeitsspeicher zur Verfügung stand. Dabei wollte ich weder Plasma noch Gnome benutzen, sondern nur Sway oder Hyprland.

Reto
Geschrieben von Reto am 6. Mai 2026 um 20:18

Versuche bitte mal statt des Graphical Installers das Minimal ISO Image (direkt darunter). Wäre nett, wenn du posten würdest, ob es damit geht.

gryps
Geschrieben von gryps am 12. Mai 2026 um 22:28

Das habe ich jetzt versucht. Aber habe direkt die Lust verloren, als ich um die Sache zu vereinfachen die default-Werte in der configuration.nix übernehmen wollte und er mich mit Fehlermeldungen überhäufte wegen der keyboard-definition. Wohlgemerkt, die Definition wie sie nur auskommentiert und dann reaktiviert war. Ich glaube, mir reichen Garuda und EndeavourOS erstmal.

kamome
Geschrieben von kamome am 5. Mai 2026 um 20:47

Danke, widmest Du Dich noch dem Problem des Vendorings, also veralteter Abhängigkeiten (in Nix, natürlich)?

Reto
Geschrieben von Reto am 6. Mai 2026 um 20:16

Nein, weil es das bei NIxOS nicht gibt. Im Nix-Store gibt es jede Library genau einmal pro Version – referenziert über ihren Hash. Alle Programme die dieselbe Library-Version brauchen, zeigen auf denselben Eintrag im Nix-Store. Bei z.B. einem Sicherheitsupdate eines Pakets werden alle Programme die darauf zeigen sofort gepatcht.

kamome
Geschrieben von kamome am 8. Mai 2026 um 15:25

Äh, das wäre schön, aber gerade in Nix kann das ein riesiges Problem sein, da beliebig viele (alte) Versionen eines Pakets von beliebig vielen anderen Paketen verwendet werden können. Daher hatte ich gefragt – zumindest gab es da massive Probleme, mich hätte (als Außenseiter aber Interessierter) die aktuelle Situation ineressiert. https://thenewstack.io/vendoring-why-you-still-have-overlooked-security-holes/ https://video.fosdem.org/2024/h1302/fosdem-2024-1983-remediating-thousands-of-untracked-security-vulnerabilities-in-nixpkgs.av1.webm

kamome
Geschrieben von kamome am 8. Mai 2026 um 15:29

… oder Entwickler packen gleich den externen Quellcode in Ihre App rein (echtes Vendoring).

Daniel
Geschrieben von Daniel am 9. Mai 2026 um 20:12

Vielen Dank für den schönen Einleitungs-Artikel! Ich habe immer mal wieder ein wenig über NixOS gehört und gelesen, aber nie ein wirklich rundes Bild davon bekommen. Der Vergleich mit der Gastronomie hat mindestens mir richtig gut geholfen dir Idee und die Umsetzung davon besser zu verstehen. :-)