CCCStuttgart

Besonderheiten von NixOS


Eines der Kernbestandteile einer Linux-Distribution ist der Paketmanager: Er sorgt dafür, dass ein gewünschtes Programm samt aller benötigten Abhängigkeiten auf einem System installiert - und auf Wunsch auch wieder entfernt, ohne dabei die Funktion anderer installierter Programme zu beeinträchtigen. Moderne Distributionen haben die damit verbundenen Probleme im Griff - zumindest so lange bei der Installation nichts schief geht. Was passiert aber, wenn die Installation mitendrin abbricht? Der leidgeplagte Admin kann sich da sicher an den einen oder anderen Vorfall erinnern… nun steht man vor dem Scherbenhaufen eines inkonsistenten Systems, in dem alte und neue Dateien, aktualisierte und noch nicht aktualisikerte Bibliotheksversionen munter durcheinander herumliegen.

NixOS möchte dieses Problem (und weitere Probleme wie z.B. versionsunabhängige Konfiguration der Pakete) mit einem “alles-oder-nichts”-Ansatz lösen und bedient sich hierfür bei Ideen und Konzepten funktionaler Programmierung. Mit der funktionalen Programmiersprache Nix bietet es die nächste Generation an Paketverwaltung. Man braucht aber keine Angst vor funktionaler Programmierung zu haben, diese sind in NixOS recht gut vor dem Benutzer versteckt.

Welche Gemeinheiten das klassische Paketmanagement birgt und wie NixOS diese Probleme löst, soll in diesem Vortrag gezeigt werden.