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
.Jika Anda menggunakan NixOS untuk Ilmu Data:
Modul python :
atau
ATAU jika Anda mencari terutama paket R / perpustakaan
atau Anda mendapatkan paket ig npm dengan:
ada juga situs web untuk mencari pkg
sumber
Saya akan menyimpan hasil
nix-env -v -qaP '*'
ke file (karena biasanya butuh waktu untuk kembali).Ingatlah, nix-env tampaknya mengabaikan hal-hal di bawah
haskellPackages
(dan mungkin yang lain).pencarian nix-env saat ini cukup membuat frustasi karena akan membutuhkan 5+ detik dan kemudian kembali dengan
error: regex error
...sumber
Tambahan untuk opsi Mirzhans: Anda bisa mengecek
/nix/store
sukagrep -irw "programm-name" /nix/store
. Tapi ini bisa sedikit membingungkan. Juga di direktori home Anda, Anda dapat memeriksa direktori.local/share
untuk program / aplikasi yang diinstal.sumber