NixOS: Zweiter Versuch

  Ralf Hersel   Lesezeit: 6 Minuten  🗪 7 Kommentare

Bei meinem zweiten Versuch, funktionierte einiges besser, als beim ersten Versuch.

nixos: zweiter versuch

Nachdem meine erste Berührung mit der GNU/Linux-Distribution NixOS am Montag kläglich gescheitert ist, versuche ich es erneut. Der erste Versuch schlug fehl, weil ich vergessen hatte, das Upgrade mit Root-Rechten durchzuführen. Die unproblematische Installation, die ich am Montag beschrieben habe, wiederhole ich jetzt nicht noch einmal. Stattdessen steige ich am Punkt des Versagens wieder ein: beim System-Upgrade.

Eelco Dolstra - NixCon 2018

Doch bevor ich damit beginne, ist hier ein kurzer historischer Ausflug: NixOS, bzw. der Nix-Paketmanager, wurde 2001 von Eelco Dolstra und Armijn Hemel an der Universität von Utrecht in den Niederlanden entwickelt. Der Name Nix geht auf das niederländische Wort für Nichts (niks) zurück.

Noch ein Tipp: falls ihr NixOS in einer virtuellen Maschine (z. B. GNOME-Boxes) ausprobieren möchtet, empfehle ich die native Auflösung eures Monitors/Display zu verwenden. Bei kleineren Skalierungen hatte ich das Problem, dass die Mausklicks nicht an der richtigen Stelle erfolgten. Ob das an NixOS, oder an GNOME-Boxes liegt, kann ich nicht sagen; jedoch habe ich diesen Effekt bei Distro-Tests bisher noch nicht gesehen.

Und los geht es:

NixOS genehmigt sich unmittelbar nach dem Start (mit dem GNOME-Desktop) 883 MiB RAM, was ein guter Wert ist. Auch die Startgeschwindigkeit ist hervorragend. Und so präsentiert es sich direkt nach dem Start:

Wie ihr seht, gibt es wenige vorinstallierte Anwendungen. Neben den üblichen GNOME-Apps fällt auf:

  • Zwei Terminals: xTerm und Konsole
  • Zwei Webbrowser: Firefox und GNOME-Web
  • E-Mail: Geary
  • Musik: Rhythmbox
  • Das NixOS-Manual
  • Kein Software-Center

Nun prüfe ich zuerst den Channel. Grob gesagt, kann man Channels mit den Repositories herkömmlicher Distributionen vergleichen. Es gibt die Stable und Unstable Channels, sowie die Large und Small Channels. Diese Namen sollten selbsterklärend sein; Stable/Unstable beschreiben die Stabilität der enthaltenen Pakete, während Large/Small den Umfang der enthaltenen Pakete zum Ausdruck bringen.

Um herauszufinden, mit welchem Channel man es zu tun hat, führt man diesen Befehl im Terminal aus:

sudo nix-channel --list | grep nixos
nixos https://nixos.org/channels/nixos-23.05

Ich nehme an, dass es sich dabei um den aktuellen Stable/Large Channel handelt; sicher bin ich mir aber nicht. Bei jeder Neuinstallation einer Distribution empfiehlt es sich, zuerst ein Upgrade durchzuführen, damit alle Pakete auf dem neusten Stand sind. Bei NixOS geht das so:

sudo nixos-rebuild switch --upgrade

Dann laufen ca. 1000 Zeilen durch euer Terminal, mit denen man als Nix-Neuling nix anfangen kann. Das ist man von anderen Distros so nicht gewöhnt. Selbst ein Upgrade im Terminal liefert in der Regel benutzergerechte Ausgaben, anstatt tausende Zeilen auszugeben. Zumindest ist die Dauer des Upgrades nicht schneller oder langsamer als bei anderen Systemen.

Nach dem Upgrade habe ich (testweise) einen Neustart durchgeführt: keine Probleme, das System lebt noch und der Startvorgang ist genauso schnell wie beim ersten Mal.

Wer sich ein bisschen in das NixOS-Manual eingelesen hat, erfährt, dass das System jede Paketversion in einem eigenen Verzeichnis unter /nix/store/ ablegt. Ja, ihr habt richtig gelesen: "für jede Version". Das ist nötig, um auf vorherige Releasestände zurückrollen zu können; führt aber auch dazu, dass euer Speichermedium schneller voll ist, als ihr "Richard Stallman" sagen könnt. Diese Behauptung entstammt nicht meinen eigenen Testergebnissen (wie auch?), sondern ist ein häufig geäusserter Kritikpunkt an NixOS: nix ohne dicke Festplatte.

Nun möchte ich ein neues Paket installieren, nämlich die Bildverwaltung gThumb. Dazu prüfe ich zuerst, ob es diese Anwendung überhaupt für NixOS gibt: https://search.nixos.org/packages

Ja, gibt es. Dort bekommt man eine Ahnung davon, dass es für die Paketinstallation unter NixOS nicht eine, sondern drei Möglichkeiten gibt: nix-env, NixOS Configuration und nix-shell. Dazu werde ich einen eigenen Artikel schreiben. Für heute begnüge ich mich mit der temporären Installation von gThumb in der nix-shell mit diesem Befehl:

nix-shell -p gthumb

Im Terminal sieht das so aus:

Nix lädt drei Pakete herunter und kopiert diese in das Nix-Store-Verzeichnis. Dann starte ich gThumb und es läuft. Aber nur, solange das Terminal geöffnet ist. Sobald ich diese Shell-Session beende, ist der Spuk vorbei und gThumb existiert nicht mehr. Hey, wie cool ist das denn?

Mehr von den Wunderdingen der Nix-Paketverwaltung lest ihr im nächsten Beitrag zu NixOS.

Quelle: https://nixos.org/manual/nixos/stable/

Bildnachweis: https://i.ytimg.com/vi/8M6yvJC00J4/maxresdefault.jpg

Tags

NixOS, Channels, Upgrade, Nix, Nix-Store

Alex
Geschrieben von Alex am 19. Juli 2023 um 13:50

Sehr cool, dass du Nix eine zweite Chance gegeben hast!

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 19. Juli 2023 um 23:54

Na klar. NixOS finde ich spannend, obwohl ich keine Ahnung davon habe. Ich dokumentiere in den Artikeln meine Lernkurve.

janov
Geschrieben von janov am 19. Juli 2023 um 15:42

Schon viel besser :-) Viel Spass mit Nix

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 19. Juli 2023 um 23:56

Danke. Ich glaube, ich werde noch viel Spass mit NixOS haben und zum Schluss eine andere Distro empfehlen :) Oder doch nicht? Mal sehen.

tux0r
Geschrieben von tux0r am 19. Juli 2023 um 16:11

Ja, nix-shell ist ein Feature, um das ich NixOS-Nutzer manchmal ein bisschen beneide. (Nix läuft theoretisch auch unter macOS, aber eher schlecht als gut.) GuixSD - die GNU-eigene Alternative zu NixOS, hat sogar eine Hurd-Variante - kann das m.W. leider auch nicht.

linmob
Geschrieben von linmob am 19. Juli 2023 um 19:25

Zum Thema "nix ohne dicke Festplatte": Es geht schon – ich betreibe NixOS seit Monaten auf einem Surface Go 2, auf dem es nur ~55 GB hat. Dazu habe ich mir eine Datei namens tinyupdate.sh erstellt, die folgenden Inhalt enthält:

sudo nix-collect-garbage && sudo nix-collect-garbage -d && sudo nixos-rebuild --switch

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 19. Juli 2023 um 23:58

Danke für Deinen Hinweis. Ich habe mir schon gedacht, dass es eine Möglichkeit gibt, NixOS das "Plattenfressen" auszutreiben. Werde mal mit makefoo (Binärgewitter) Kontakt aufnehmen, weil Felix sich damit auskennt.