Спільнота NixOS має три посібники, завжди зверніться до них, якщо ви застрягли:
Кожен пакет Nix визначається виразом Nix. Вираз Nix - це деякий текст, написаний мовою Nix, зазвичай знаходиться у файлі з розширенням .nix
.
Кожен вираз має так зване "символічне ім'я", зрозуміле для людини ім'я, яке друкується під час використання nix-env
. Дивіться зразок вираження Nix . Nix сам не використовує це символічне ім’я ніде всередині, тому не має значення, чи названий ваш пакунок aspell-dict-en
, це лише для ваших, людських зручностей.
Насправді важливим є так званий "шлях атрибутів". Таким чином, ваше плутанина знаходиться між символічним ім'ям та атрибутом. Кожен пакет має шлях атрибутів, який ви можете використовувати в environment.systemPackages
опції конфігурації для встановлення на всій системі за допомогою декларативного управління пакетом .
Щоб дізнатися шлях атрибутів вашого пакету, додайте ще один прапор -P
до запиту:
$ nix-env -qaP 'aspell.*en'
nixos.aspellDicts.en aspell-dict-en-7.1-0
Ви повинні бути зручними , використовуючи nix-env
на щоденній основі, так що практика виклику nix-env
з --query
і --install
варіанти. Однак ви також можете переглядати пакунки та знаходити шляхи їх атрибутів в Інтернеті під час пошуку пакетів Nix . Введіть aspell
, натисніть на aspell-dict-en
і ви побачите різні властивості пакета, включаючи шлях атрибутів як частину команди встановлення:
$ nix-env -iA nixos.pkgs.aspellDicts.en
Тепер ви можете помістити цей шлях атрибутів у /etc/nixos/configuration.nix
:
environment.systemPackages = with pkgs; [
aspellDicts.en
];
Потім оновіть систему запуском sudo nixos-rebuild switch
.
-P
параметр не працює--installed
, як видно, зnix-env -q --installed -P | grep terminus
якими друкамиterminus-font
замістьterminus_font
. Вирішення питання полягає у використанніnix-env -qaP | grep terminus-font
, але це означає, що ви не можете легко скинути вихідnix-env -q --installed
уconfiguration.nix
.