Reproduzierbare NixOS-Benutzer und -Pakete?

Reproduzierbare NixOS-Benutzer und -Pakete?

Ich bin neu inNixOSund versuche, seine Konzepte zu lernen. Einer der Gründe, warum ich davon begeistert bin, ist die Hoffnung, dass es mir eine reproduzierbare Systemkonfiguration geben wird, ähnlich wie bei der Verwendung vonAnsible für localhost. Ich bin jedoch nicht sicher, wie ich das erreichen soll.

Ich bin mir bewusst, dassenvironment.systemPackagesIn/etc/nixos/configuration.nix, aber das sind nur systemweite Pakete. Ich weiß auch, dass dienix-envBefehl kann ein Paket für einen Benutzer installieren, aber ich würde ein solches Paket lieber in einer Datei deklarieren, die ich in die Quellcodeverwaltung einchecken kann.

Gibt es eine bestimmte Datei, die ich konfigurieren kann (ähnlich einem Playbook), in der ich einen Satz von Paketen für einen Benutzer deklarieren kann? Oder zumindest deren"Benutzerumgebung"oder"Profile"(nicht sicher, welcher Begriff richtig ist)?

Im Idealfall könnte ich ein paar Dateien nehmen, sie auf einen anderen Computer kopieren, einen Befehl ausführen und schon wäre alles im selben Zustand wie der alte Computer, einschließlich mehrerer Benutzer mit unterschiedlichen Paketsätzen.

Bedeutet mein Anwendungsfall schließlich, dass ich niemals verwenden solltenix-envum Pakete zu installieren?

Antwort1

Also habe ich die Leute im Freenode #nixos IRC-Kanal gefragt und sie haben mich zu dieser Antwort geführt.

Ich muss ein~/.nixpkgs/config.nixDatei. In dieser Datei muss ich einePaketsammlungVerwendung derBuildEnv-Funktionund installieren Sie es mit nix-env.

Installieren von Ad-hoc-Paketen mitnix-envwird nicht aktualisiert ~/.nixpkgs/config.nix, daher würde ich das in meinem Anwendungsfall vermeiden wollen. Es ist jedoch erwähnenswert, dass die Installation von Ad-hoc-Paketen mit nix-envimmer noch für Experimente nützlich ist, da die Installation der Paketsammlung mit dem --remove-allSchalter alles entfernen würde, was nicht in dieser Paketsammlung enthalten ist.

verwandte Informationen