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
.W przypadku korzystania z NixOS do Data Science:
Moduły Python :
lub
LUB jeśli szukasz szczególnie pakietów R / bibliotek
alternatywnie dostajesz pakiety ig npm z:
istnieje również strona internetowa do wyszukiwania pkgs
źródło
Zapisałbym wynik w
nix-env -v -qaP '*'
pliku (jak zwykle powrót zajmuje trochę czasu).Pamiętaj, że nix-env wydaje się ignorować rzeczy pod
haskellPackages
(i prawdopodobnie inne).Wyszukiwanie nix-env jest obecnie dość frustrujące, ponieważ zajmie to ponad 5 sekund, a następnie wróci z
error: regex error
...źródło
Oprócz opcji Mirzhansa: możesz sprawdzić
/nix/store
jakgrep -irw "programm-name" /nix/store
. Ale może to być nieco mylące. Również w katalogu domowym możesz sprawdzić katalog pod.local/share
kątem zainstalowanych programów / aplikacji.źródło