Misalkan saya mencari paket untuk menginstal menggunakan nix-env
's --query
operasi:
$ nix-env -qa 'aspell.*en'
aspell-dict-en-7.1-0
Saya menulis nama paket ini di /etc/nixos/configuration.nix
, file konfigurasi utama NixOS :
environment.systemPackages = with pkgs; [
aspell-dict-en
];
Namun jika saya menjalankan sudo nixos-rebuild switch
, perintah NixOS untuk memperbarui konfigurasi dan menginstal semua paket seluruh sistem yang ditentukan oleh deklaratif , itu dibatalkan dengan kesalahan:
error: undefined variable ‘aspell-dict-en’ at /etc/nixos/configuration.nix:44:5
Saya tahu bahwa untuk banyak paket, walaupun tidak semua, nama yang nix-env
kembali dan nama yang harus ditentukan dalam environment.systemPackages
opsi konfigurasi berbeda, tetapi saya tidak mengerti logikanya. Bagaimana cara saya menginstal paket yang saya temukan nix-env
?
-P
pilihan tidak bekerja dengan--installed
, seperti dapat dilihat dengannix-env -q --installed -P | grep terminus
yang mencetakterminus-font
bukanterminus_font
. Solusinya adalah menggunakannix-env -qaP | grep terminus-font
, tetapi itu berarti bahwa Anda tidak dapat dengan mudah membuang outputnix-env -q --installed
ke dalamconfiguration.nix
.