Supposons que je recherche un package à installer à l'aide nix-envde l' --queryopération de:
$ nix-env -qa 'aspell.*en'
aspell-dict-en-7.1-0
J'écris ce nom de package dans /etc/nixos/configuration.nix, le fichier de configuration principal de NixOS :
environment.systemPackages = with pkgs; [
aspell-dict-en
];
Pourtant, si sudo nixos-rebuild switchj'exécute, la commande NixOS pour mettre à jour la configuration et installer tous les packages à l'échelle du système spécifiés par déclarativement , elle abandonne avec une erreur:
error: undefined variable ‘aspell-dict-en’ at /etc/nixos/configuration.nix:44:5
Je sais que pour de nombreux packages, bien que pas tous, le nom qui nix-envrevient et le nom que l'on doit spécifier dans l' environment.systemPackagesoption de configuration sont différents, mais je ne comprends pas la logique. Comment installer un package que j'ai trouvé via nix-env?
-Poption ne fonctionne pas--installed, comme on peut le voir avec lesnix-env -q --installed -P | grep terminusimpressionsterminus-fontau lieu determinus_font. La solution de contournement est d'utilisernix-env -qaP | grep terminus-font, mais cela signifie que vous ne pouvez pas facilement vider la sortie denix-env -q --installeddans leconfiguration.nix.