Die Distribution NixOS und ihre Nix Paketmanager faszinieren viele Anwender:innen, weil die Konzepte von Nix anders sind als bei den üblichen GNU/Linux-Distributionen. Nix baut Pakete isoliert voneinander. Dies stellt sicher, dass sie reproduzierbar sind und keine nicht deklarierten Abhängigkeiten haben. Wenn also ein Paket auf einem Rechner funktioniert, wird es auch auf einem anderen funktionieren. Nix macht es trivial, Entwicklungs- und Build-Umgebungen für Projekte gemeinsam zu nutzen, unabhängig davon, welche Programmiersprachen und Tools man verwendet. Nix stellt sicher, dass die Installation oder Aktualisierung eines Pakets keine anderen Pakete beschädigt. Es erlaubt, zu früheren Versionen zurückzukehren und stellt sicher, dass sich kein Paket während eines Upgrades in einem inkonsistenten Zustand befindet.
Bei GNU/Linux.ch gab es bereits einige Artikel über NixOS, sowohl für Fortgeschrittene als auch für blutige Anfänger. Hat man es mit einem andersartigen Konzept zu tun, spielt die Dokumentation eine besonders wichtige Rolle. Selbst wenn man sich mit "normalen" Distros gut auskennt, heisst das noch lange nicht, dass man auch mit NixOS zurechtkommt. Die NixOS-Dokumentation ist zwar umfangreich; manche Nix-Profis sagen jedoch, dass sie didaktisch nicht gut aufgebaut ist und bei Anfänger:innen oft Fragen aufwirft. Deshalb hat Ryan Yin unter der MIT-Lizenz das NixOS & Flakes Book publiziert.
Der Autor, Ryan Yin, beschreibt sein Buch folgendermassen:
- Konzentriert sich auf NixOS und Flakes und lässt den traditionellen Nix-Konfigurationsansatz ausser Acht.
- Einsteigerfreundlich, mit Erklärungen aus der Perspektive von NixOS-Neulingen, die schon etwas Erfahrung mit Linux-Nutzung und Programmierung haben.
- Schritt-für-Schritt, progressives Lernen.
- Kohärenter Inhalt, gut organisiert und strukturiert. Der Leser kann das Buch entweder schrittweise lesen oder schnell die Informationen finden, die er benötigt.
Das englische online-Buch gliedert sich in diese Hauptkapitel:
- Preface
- Get Started
- The Nix Language
- NixOS with Flakes
- Nix Packages' Advanced Usage
- Best Practices
- Other Usages of Flakes
- Dev Environments on NixOS
- Advanced Topics
- Frequently Asked Questions
Unter diesen Hauptkapiteln gibt es eine Vielzahl von Unterkapiteln mit vielen Code- und Konfigurationsbeispielen. Die Basis für das Buch bildet eine (überwiegend) chinesische NixOS-Community, die auf der GitHub-Seite des Buchs an der Verbesserung und Weiterentwicklung arbeitet. Da es eine chinesische und eine englische Version des Buchs gibt, könnt ihr auch am Buch mitarbeiten.
Das klingt nach einem Buch, dass mich genau da abholen könnte wo ich mit meiner NixOS config gerade bin. Hat jemand schon mal reingelesen und kann sagen, ob das Buch gut ist?
I am the author of this book, and you can find many related discussions on reddit:
https://www.reddit.com/search/?q=nixos-and-flakes.thiscute.world&type=comment&sort=top
And NixOS Discourse:
https://discourse.nixos.org/t/an-unofficial-nixos-flakes-book-for-beginners/29561
https://discourse.nixos.org/t/nixos-flakes-book-home-page/33650
And GitHub Discussions:
https://github.com/ryan4yin/nixos-and-flakes-book/discussions/43
Since so many people like what I wrote, I think it should be a good introduction to NixOS.