NixOS Logo

Nix: das geheimnisvolle Wesen

Schon mal von NixOS gehört? Haben vermutlich viele hier und einige werden es auch einsetzen. Die Mehrheit der Linux-Anwender hat aber eine eher neblige Vorstellung, was NixOS ausmacht.

Macht vieles anders

NixOS wird bereits seit 20 Jahren entwickelt und hat viele Dinge von Anfang an anders gemacht, und einiges wie Atomare Upgrades und Rollbacks werden in den vergangenen Jahren vermehrt von anderen Distributionen aufgegriffen. Zunächst einmal hat NixOS den Filesystem Hierarchy Standard (FHS) über Bord geworfen. Zudem verfolgt es einen deklarativen Ansatz, was die Systemkonfiguration angeht. NixOS ist ein interessanter Ansatz, der sich vielen Neugierigen gar nicht erst erschließt, weil es bei der Dokumentation hapert, was zu einer recht steilen Einstiegskurve führt. Wer mehr über das Konzept erfahren möchte, findet einen Einstieg bei den Kollegen von GNU/Linux.ch

Nix – one to rule them all

Um NixOS soll es hier aber nicht gehen, sondern um Nix, den Paketmanager, der als Kern der Distribution dient. Nix wurde ab 2003 an der Universität von Utrecht entwickelt und diente in der Thesis von Hauptentwickler Eelco Dolstra als Thema. Nix ist ein Paketmanager, der in vielen Linux-Distributionen, bei macOS und auf dem Steam Deck neben einem vorhandenen Paketmanager wie APT oder DNF oder als deren Ersatz eingesetzt werden kann. Nix bietet mehr Pakete als Debian oder Arch Linux und kann mit Immutabilität, Sandboxing und Rollback punkten. Zudem kann Nix über Profile schon immer mehrere Versionen einer Software nebeneinander verwalten, um nur einige seiner Vorteile zu nennen.

Zero to Nix

Um mehr Anwender abzuholen, gibt es sei Kurzem das inoffizielle Projekt mit dem schönen Namen Zero to Nix. Es geht dabei um die geführte Installation von Nix und der Erklärung des Konzepts dahinter in einfachen Schritten. Die offizielle Dokumentation, so sie denn existiert, wirkt oft wie ein wissenschaftlicher Dialog, der für Neueinsteiger abschreckend sein kann. Hier bietet sich Zero to Nix als sanfter Einstieg an und lädt zum Experimentieren mit Nix ein. Viel Spaß dabei. Erkenntnisgewinn ist garantiert. Was Chris Titus von Nix denkt, könnt ihr in einem Video sehen.

Teilt den Beitrag, falls ihr mögt

14 Kommentare

  1. Das ist die verständlichste Anleitung für den Paketmanager NIX bisher. Die Themen sind etwas eigenwillig gewählt. Man sollte selber Pakete schnüren können (3 und 4) bevor man die Pakete, die andere gemacht haben, suchen darf (5). Ok. Ich kann im Fall auch keine RPM Pakete schnüren, und verwende trotzdem Discover, das ist vermutlich ein Fehler meinerseits. Und fürs Updaten gibts keine Anleitung. Ich hoffe die Liste wird noch um gewisse Themen erweitert. Rollback wäre für mich als Endbenutzer beispielsweise auch interessant, wenn es doch schon zu den Vorteilen gehört.

    0
  2. Ich finde das grundsätzlich auch interessant mal links und rechts des Linux Mainstreams zu luschern, aber: Dokumentation, Foren, Wiki, …alles lieb gewordene und essentielle Dinge der letzten Jahre. Unterstützung von Hardware über das rudimentäre Maß hinaus mittlerweile m.M.n. ein MUSS. Da wären sicherlich noch ein paar mehr Kriterien zu nennen, die mich persönlich davon abhalten Nix(OS) auszuprobieren. Dennoch bleibt es interessant und wer weiß was kommt. Allerdings würde mich der Punkt bzgl. “mehr Pakete wie bei Debian oder Arch …”. Wie ist das gemeint bzw. wie erklärt sich das?

    0
    1. Beim Thema Hardwareunterstüzung gibt es meines Erachtens zwei Aspekte. Der eine ist die Komponentenunterstützung (ob bspw. eine bestimmte Grafikkarte läuft oder nicht), welche aber maßgeblich vom Kernel abhängt, weniger von der Distribution selbst. Der zweite Aspekt ist die Unterstützung von Hardwareplattformen (x86, x86_64, ARM64). Da sieht es bei den meisten Distributionen mau aus wenn man etwas abseits von x86_64 braucht (selbst 32bit wird immer häufiger nicht mehr angeboten).

      NixOS nutze ich seit kurzem auch auf dem Pinebook Pro. Es gibt nicht so viele Distros die da drauf (vernünftig) laufen – bei ARM ist das alles leider auch noch komplizierter als bei x86. Allerdings sehe ich die Vorteile von NixOS für mich persönlich eher im Serverbereich.

      Wenn du mal durch die Pakete stöbern willst, kannst du das unter https://search.nixos.org/packages tun.

      0
      1. Danke für den Input.
        Bei Debian, welches ich auf allen Rechnern im Haushalt nutze inkl. OMV NAS, ist die Auswahl der unterstützen Plattformen/Architekturen recht gut. Allerdings wird auch dort das weniger.
        ARM wie du schon sagst, ist sehr speziell da für jedes Gerät das einzeln angepasst werden muss.
        Jedes System hat halt Vor- und Nachteile und seine besonderen Stärken bzw. Fokus.

        0
  3. Ich habe mir nixos immer mal wieder angesehen.

    Fuer mich ist das haupt-aus-kriterium das ueber den Haufen werfen des Filesystem Hierarchy Standard (FHS). Dieser ist einfach existentiell, das musste schon suse in den 90ern erfahren.

    Das ist leider ein klares no go und damit bleibt nixos eine kategory fuer sich.

    Der Ansatz ist interessant aber fuer mich etwas fuer freaks.

    Rollback ist natuerlich ein wichtiges Thema.
    Was ich nicht verstanden habe, ist das:
    “Nix bietet mehr Pakete als Debian oder Arch Linux und kann mit Immutabilität, Sandboxing und Rollback punkten.”
    bezieht sich dies auf nixos? Hat er sein ureigenes repo?(waere ungut 🙂 )vielleicht kann das einer aufklaeren.
    Auf alle Faelle ist nix mal eine betrachtung wert.

    0
    1. Nix ist eine Paketverwaltung und besitzt ein eigenes Repository (https://github.com/NixOS/nixpkgs). Es ist eher mit dem von Arch als dem von Debian vergleichbar, weil die Pakete im Repository “lediglich” Anleitungen sind von wo Archive herunterzuladen und wie zu installieren sind.
      NixOS wiederumg ist eine komplette Linux-Distribution, welche auf Nix als Paketverwaltung setzt.

      Ich nutze NixOS seit etwa zehn Jahren auf nahezu allen meinen Servern. Mir gefällt vor allem die deklarative Konfiguration, weil ich damit sehr einfach sicherstellen kann, dass alle Maschinen einheitlich aufgebaut sind.
      Dass die FHS nicht eingehalten wird, macht sich im Betrieb kaum bemerkbar. Programme rufe ich persönlich sowieso nur selten mit vollem Pfad auf und dass die Konfiguration des Systems und der Anwendungen nicht direkt über die jeweiligen Dateien in /etc erfolgt, ist einer der großen Vorteile.

      0
      1. Danke Dir, fuer den Einblick.
        Man sieht, das jede Distro seinen speziellen Einsatzzweck haben kann.
        Bei suse hatte der Ansatz (FHS verwerfen) nicht funktioniert damals.

        Ja der FHS ist wichtig, das sie der Admin halt ohne Umdenken an jedwede Linux/unix maschine setzen kann und sofort durchstarten ohne umdenken. War ja die grundvorraussetzung im Linuxbereich.

        0
        1. > Ja der FHS ist wichtig, das sie der Admin halt ohne Umdenken an jedwede Linux/unix maschine setzen kann und sofort durchstarten ohne umdenken. War ja die grundvorraussetzung im Linuxbereich.

          Erst sprichst du von Linux/Unix, dann sprichst du vom Linuxbereich.

          Das an die Maschine setzen ohne Umdenken ist ziemlicher mumpitz, selbst wenn man mal die Paketmanager weglässt. ifconfig vs. ip tooling, certificate management chain, update-alternative, wahl der filesysteme, bootloader. Das hat sich alles seit einigen Jahren diverifiziert, besonders wenn du noch die BSDs dazunimmst, um so mehr.

          (Und für SUSE hat das schon funktioniert, nur nicht für *dich* 😀 Ausserdem lustig wie du dich auf SUSE beziehst, aber andere Systeme wie Flatpak oder Snap da nicht reinziehst)

          Und das wird auch immer mehr. Weil halt alle ihre Itches auf unterschiedliche Weise scratchen. Wir werden sehen, was sich durchsetzt.

          Persönlich glaube ich, dass Paketmanagement systeme wie Nix/Guix sich mehr durchsetzen werden, weil sie es erlauben, dass Paket mit gleichen Namen und gleicher Version, aber unterschiedlicher Bauweise installiert werden können. Das ersetzt mehr oder weniger den ganzen Krusch, den man sonst mit Containern/Flatpak/Appimages/Snaps löst, wo sie alle dasselbe Problem lösen wollen.
          Nämlich, dass manche Applikationen Libraries in unterschiedlichen Versionen oder unterschiedlicher Bauart brauchen. Und die NixPakete kann man dann immer noch in Containern oder sonstwas für die Compartmentalisierung verpacken.

          Das einzige was etwas doof ist (in mancher Sicht/aus der Sicht mancher), dass Nix das ganz hart mit systemd verdrahtet hat. Das hat ihnen einige Probleme beim bootstrapping erspart, wird aber in bestimmten Bereichen halt nicht gerne gesehen.

          0
          1. ‘ Ausserdem lustig wie du dich auf SUSE beziehst, aber andere Systeme wie Flatpak oder Snap da nicht reinziehst)’
            na ganz einfach, weil ich schrieb:
            das musste schon suse in den 90ern erfahren. ” damit sollte es Jedem verstaendlich sein,

            Natuerlich ist alles eine subjektive Betrachtung.
            Ich finde es immer lustig, das wenn es um software in den distros geht, gemeckert, bzw besonders hervorgehoben wird. Man kan doch jedwede Software installieren, man muss eben nur die sources verwenden. rpm, deb pakete bauen ist auch kein hexenwerk.

            0
      2. Ich finde Standards grundsätzlich wichtig, dort wo sie Sinn machen. Darüber lässt sich manches mal streiten. In diesem Fall halte ich das auch für wichtig …aus besagten Gründen, außer ich möchte das vielleicht nicht als Entwickler. Damit würde die Hürde zur breiteren Masse aber noch größer und hilft nicht bei der Akzeptanz.
        Vielleicht ist Nix auch hervorragend als Server System geeignet (was ich nicht beurteilen kann) und vor allem für Profis, jedoch für den Desktop erscheint mir das eher weniger interessant zu sein und möchte es vielleicht auch gar nicht!
        Wie groß ist den der Kreis der Entwickler? Welche Ressourcen (Entwickler/Community/finanziell) stehen hier zur Verfügung? Finde ich mittlerweile auch sehr wichtig. Wenn das nicht passt, werden hier auch wenig Leute Vertrauen finden und aufspringen. Danke auch für den Einblick.

        0
      3. Ich nutze NixOS seit etwa zehn Jahren auf nahezu allen meinen Servern.

        Ach, das interessiert mich… Wie gehst du damit um, dass bei solchen immutable Systemen immer ein Neustart nötig ist, um die config dann dauerhaft zu übernehmen? Grade auf Servern ist neustarten ja igitt dnd es gibt auch andere Konstellationen abseits vom Single-User-Heimlaptop, wo Neustarts extrem unerwünscht sind. Das ist einer der Gründe, warum ich bisher von diesem Ansatz Abstand genommen habe.

        0

Kommentar hinterlassen