Es beginnt schon bei der Installation von NixOS. Abgesehen von den üblichen Klimmzügen beim Booten und Mounten der Root-Partition besteht der wesentliche Schritt dabei im Schreiben der deklarativen Spezifikation des Systems. Hierbei werden etwa der Bootloader, zu ladende Kernel-Module, Disks, Dateisysteme, Netzwerk, die auszuführenden Dienste bis hin zu einer Desktop-Umgebung festgelegt. Der Installer ermittelt darauf basierend die nötigen Pakete und erzeugt das System. Hat man bei der Konfiguration einen Fehler gemacht, teilt der Installer das mit. Tritt bei der Installation ein Fehler auf, kann man den Vorgang ohne weiteres immer wieder neu starten. Eine Auflistung der nötigen Schritte ist in Listing 1 zu sehen.
Listing 1
NixOS-Installation
Ist NixOS installiert, kann man Pakete wie im Abschnitt über Nix angesprochen installieren und wieder entfernen. Letzteres beispielsweise geht mit dem Nix-Schalter
»-e
«
. Für einen Rollback, der das System auf den Zustand vor der letzten Paketinstallation zurücksetzt, bietet Nix die Option
»--rollback
«
. Generell lässt sich auch jeder bisher erreichte Systemzustand (eine sogenannte Generation) direkt anspringen, indem man
nix-env --switch-generation Generation
verwendet. Wie beschrieben behält NixOS die alten Versionen der Pakete bei, sonst wäre ein solcher Switch ja gar nicht möglich. Allerdings lassen sich alte Generationen durchaus auch löschen, denn irgendwann wird man vielleicht nicht mehr zu Generation 1 zurückkehren wollen, und der Speicherplatz ist schließlich nicht unendlich. Alle alten Generationen löscht der Befehl
nix-env --delete-generations old
aus dem Profil, während der gleiche Aufruf mit Nummern anstelle von
»old
«
spezifische Generationen löscht. Nach dem Löschen aus dem Profil entfernt ein Aufruf von
»nix-store --gc
«
die alten Dateien. Wer sich das vorher erst einmal anschauen möchte, verwendet stattdessen
»nix-store --gc --print-dead
«
.