Angenommen, ich suche nach einem Paket, das mithilfe nix-envder folgenden --queryOperation installiert werden soll :
$ nix-env -qa 'aspell.*en'
aspell-dict-en-7.1-0
Ich schreibe diese Paketnamen in /etc/nixos/configuration.nix, NixOS Hauptkonfigurationsdatei :
environment.systemPackages = with pkgs; [
aspell-dict-en
];
Wenn ich sudo nixos-rebuild switchjedoch den Befehl NixOS ausführe, um die Konfiguration zu aktualisieren und alle von deklarativ angegebenen systemweiten Pakete zu installieren , wird der Vorgang mit einem Fehler abgebrochen:
error: undefined variable ‘aspell-dict-en’ at /etc/nixos/configuration.nix:44:5
Ich weiß, dass für viele Pakete, obwohl nicht für alle, der Name, der nix-envzurückgegeben wird, und der Name, den man in der environment.systemPackagesKonfigurationsoption angeben sollte, unterschiedlich sind, aber ich verstehe die Logik nicht. Wie installiere ich ein Paket, das ich gefunden habe nix-env?
-Pfunktioniert die Option nicht mit--installed, wie zu sehen ist, mitnix-env -q --installed -P | grep terminuswelchen Ausdruckenterminus-fontstattterminus_font. Die Problemumgehung ist die Verwendungnix-env -qaP | grep terminus-font, aber es bedeutet , dass Sie nicht einfach die Ausgabe des Dump kannnix-env -q --installedin dieconfiguration.nix.