Supponiamo che io cerchi un pacchetto da installare usando nix-envl' --queryoperazione:
$ nix-env -qa 'aspell.*en'
aspell-dict-en-7.1-0
Scrivo questo nome del pacchetto nel file di configurazione/etc/nixos/configuration.nix principale di NixOS :
environment.systemPackages = with pkgs; [
aspell-dict-en
];
Tuttavia, se sudo nixos-rebuild switcheseguo, il comando NixOS per aggiornare la configurazione e installare tutti i pacchetti a livello di sistema specificati in modo dichiarativo , si interrompe con un errore:
error: undefined variable ‘aspell-dict-en’ at /etc/nixos/configuration.nix:44:5
So che per molti pacchetti, sebbene non tutti, il nome che nix-envritorna e quello che si dovrebbe specificare environment.systemPackagesnell'opzione di configurazione sono diversi, ma non capisco la logica. Come installo un pacchetto che ho trovato nix-env?
-Popzione non funziona con--installed, come si può vedere connix-env -q --installed -P | grep terminusquale stampaterminus-fontinvece diterminus_font. La soluzione alternativa è utilizzarenix-env -qaP | grep terminus-font, ma significa che non è possibile scaricare facilmente l'output dinix-env -q --installedinconfiguration.nix.