Steiler Einstieg, große Freude
Doch an der Dokumentation kann es gerade für Neulinge scheitern. Unter anderem die sogenannten Nix Pills - das sind kurze, ausformulierte erklärende Absätze zu Nix - sollen die Sprache und die Konzepte beibringen. "Ich fand die Nix Pills nicht so informativ, da sie nicht meinen stilistischen Erwartungen entsprachen", sagte mir dazu Yannik, Mitglied des ehrenamtlichen Marketing-Teams bei NixOS. Er findet, dass man mit Nix nie wirklich aufhöre zu lernen. Vieles benötige Vorwissen, obwohl die Programmiersprache nicht komplex sei. "Man sollte vieles einfacher machen und mehr Dokumentation schreiben", sagt er.
Viele Nutzer und Maintainer berichten im persönlichen Gespräch Ähnliches. Seitdem ich in Berlin wohne, besuche ich das deutschsprachige NixOS-Meetup. Beim dazugehörigen Mumble-Meetup, der Corona-Remote-Alternative zum physischen Treffen im Hackerspace der C-Base, frage ich, wie die Entwicklung von Nix früher war. "Das waren die guten Zeiten. Damals wurde man nicht so mit Pull Requests überhäuft", sagt Lassulus, der nur unter seinem Pseudonym auftritt.
Weil die wenigsten beruflich an Nix arbeiten und die meiste Arbeit somit in der Freizeit erledigt werde, bleibe vieles liegen, sagt Lassulus. Mic92 vom Meetup fordert, dass als erste bezahlte Person ein Technical Writer eingestellt werden müsste: "Jemand, der Dokumentation schreibt."
Dass vielfach Dokumentation fehlt, erschwert gerade den Einstieg. Als ich vor Jahren mit Nix anfing, fühlte ich mich ins kalte Wasser geschubst. Man musste - wie heutzutage oft auch noch - die in Nix deklarierten Module lesen, um zu verstehen, wie man Software implementiert. Yannik ist daran beteiligt, search.nixos.org zu verbessern. Damit werden die fertigen Pakete durchsuchbar gemacht. Außerdem hilft diese Suche dabei, Module für Systemkonfigurationen zu finden.
Wie funktioniert NixOS?
Doch wie funktionieren Nix und NixOS? Nehmen wir als Beispiel die Bash-Alternative Z-Shell. Ad hoc komme ich auf drei Wege, über die ich Zsh bisher installiert habe. Da gibt es die imperativen Wege: $ yay -S zsh unter Arch Linux und $ nix-shell -p zsh unter Nix. Aber gerade der deklarative Weg führt zu dem Ziel, das Nutzer von Nix anpeilen:
{ programs.zsh = { enable = true; autosuggestions.enable = true; enableCompletion = true; ohMyZsh = { enable = true; theme = "mh"; }; }; users.users.lennart = { shell = pkgs.zsh; }; }
Dieser Codeblock in meiner NixOS-Konfiguration beschreibt, dass ich erstens Zsh mit automatischen Vorschlägen und Autovervollständigung installiert haben möchte. Zweitens soll die Erweiterung Ohmyzsh mit dem Theme Mh installiert werden. Zuletzt wird als Login-Shell Zsh deklariert. Als nächstes führe ich nixos-rebuild aus und wechsele automatisch in eine neue Generation des Systems.
Der zuvor genannte imperative Weg bei Nix wiederum macht eine Shell auf, in der die gewünschte Software verfügbar ist. Das ist gerade für Entwicklungsumgebungen Gold wert, weil beispielsweise Python-Pakete schnell der Umgebung hinzugefügt werden können. Ausnahmslos alle, mit denen ich für diesen Artikel sprach, bestätigten in Bezug auf nix-shell, was Nix-Maintainerin Alyssa Ross wie folgt ausdrückte: "That shit blew me away".
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Deklaratives Linux: Keine Angst vor Nix | 176 Maintainer, tausende Pull Requests |
Nix ist eine saubere Möglichkeit, Installationen reproduzierbar zu machen ("but it works...
für die Verwaltung der Benutzerkonfigurationen gits noch den Home Manager: https://nix...
Kannst du dich bei Windows durch ein Fenster bücken oder ist Mikrosoft klein und weich?
Durchaus faszinierend, wie sehr sich die Artikel hier teilweise in ihrer IT-Tiefe...