
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.systemPackages
In/etc/nixos/configuration.nix
, aber das sind nur systemweite Pakete. Ich weiß auch, dass dienix-env
Befehl 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-env
um 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.nix
Datei. In dieser Datei muss ich einePaketsammlungVerwendung derBuildEnv-Funktionund installieren Sie es mit nix-env
.
Installieren von Ad-hoc-Paketen mitnix-env
wird 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-env
immer noch für Experimente nützlich ist, da die Installation der Paketsammlung mit dem --remove-all
Schalter alles entfernen würde, was nicht in dieser Paketsammlung enthalten ist.