A comunidade NixOS possui três manuais, sempre os consulte primeiro, se você estiver preso:
Todo pacote no Nix é especificado por uma expressão do Nix. Uma expressão Nix é algum texto, escrito na linguagem Nix, normalmente residindo em um arquivo com extensão .nix.
Toda expressão tem o chamado "nome simbólico", um nome legível por humanos que é impresso quando você usa nix-env. Veja a amostra da expressão Nix . O próprio Nix não usa esse nome simbólico em nenhum lugar internamente, por isso não importa se o seu pacote tem o nome aspell-dict-en, é apenas para sua conveniência humana.
O que realmente importa é o chamado "caminho do atributo". Portanto, sua confusão está entre o nome simbólico e o caminho do atributo. Cada pacote possui um caminho de atributo, que você pode usar na environment.systemPackagesopção de configuração para instalar em todo o sistema usando o gerenciamento declarativo de pacotes .
Para descobrir o caminho do atributo do seu pacote, adicione outro sinalizador -Pà sua consulta:
$ nix-env -qaP 'aspell.*en'
nixos.aspellDicts.en aspell-dict-en-7.1-0
Você deve se sentir confortável nix-envem usar diariamente, portanto pratique a chamada nix-envcom --querye --installopções. No entanto, você também pode procurar pacotes e descobrir seus caminhos de atributos online na pesquisa de pacotes Nix . Digite aspell, clique em aspell-dict-ene você verá várias propriedades do pacote, incluindo o caminho do atributo como parte do comando de instalação:
$ nix-env -iA nixos.pkgs.aspellDicts.en
Agora você pode colocar este caminho de atributo em /etc/nixos/configuration.nix:
environment.systemPackages = with pkgs; [
aspellDicts.en
];
Atualize o sistema executando sudo nixos-rebuild switch.
-Popção não funciona--installed, como pode ser visto com asnix-env -q --installed -P | grep terminusimpressões emterminus-fontvez determinus_font. A solução alternativa é usarnix-env -qaP | grep terminus-font, mas isso significa que você não pode despejar facilmente a saídanix-env -q --installednoconfiguration.nix.