Supponiamo che io cerchi un pacchetto da installare usando nix-env
l' --query
operazione:
$ 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 switch
eseguo, 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-env
ritorna e quello che si dovrebbe specificare environment.systemPackages
nell'opzione di configurazione sono diversi, ma non capisco la logica. Come installo un pacchetto che ho trovato nix-env
?
-P
opzione non funziona con--installed
, come si può vedere connix-env -q --installed -P | grep terminus
quale stampaterminus-font
invece diterminus_font
. La soluzione alternativa è utilizzarenix-env -qaP | grep terminus-font
, ma significa che non è possibile scaricare facilmente l'output dinix-env -q --installed
inconfiguration.nix
.