Załóżmy, że mam szukać pakietu instalacji przy użyciu nix-env
„s--query
operacji:
$ nix-env -qa 'aspell.*en'
aspell-dict-en-7.1-0
Piszę nazwę tego pakietu w /etc/nixos/configuration.nix
głównym pliku konfiguracyjnym NixOS :
environment.systemPackages = with pkgs; [
aspell-dict-en
];
Jednak jeśli uruchomię sudo nixos-rebuild switch
, polecenie NixOS, aby zaktualizować konfigurację i zainstalować wszystkie pakiety systemowe określone przez deklaratywnie , przerywa z błędem:
error: undefined variable ‘aspell-dict-en’ at /etc/nixos/configuration.nix:44:5
Wiem, że dla wielu pakietów, choć nie wszystkie, nazwa, która nix-env
powraca i nazwa, którą należy podać w environment.systemPackages
opcji konfiguracji, są różne, ale nie rozumiem logiki. Jak zainstalować pakiet, który znalazłem nix-env
?
-P
opcja nie działa--installed
, ponieważ można zobaczyć, znix-env -q --installed -P | grep terminus
którymi wydrukamiterminus-font
zamiastterminus_font
. Obejściem jest użycienix-env -qaP | grep terminus-font
, ale oznacza to, że nie można łatwo zrzucić danych wyjściowych donix-env -q --installed
plikuconfiguration.nix
.