Angenommen, ich suche nach einem Paket, das mithilfe nix-env
der folgenden --query
Operation 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 switch
jedoch 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-env
zurückgegeben wird, und der Name, den man in der environment.systemPackages
Konfigurationsoption angeben sollte, unterschiedlich sind, aber ich verstehe die Logik nicht. Wie installiere ich ein Paket, das ich gefunden habe nix-env
?
-P
funktioniert die Option nicht mit--installed
, wie zu sehen ist, mitnix-env -q --installed -P | grep terminus
welchen Ausdruckenterminus-font
stattterminus_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 --installed
in dieconfiguration.nix
.