У сообщества 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
и вы увидите свойства различных пакетов, включая путь атрибута, как часть команды install:
$ nix-env -iA nixos.pkgs.aspellDicts.en
Теперь вы можете поместить этот атрибут path в /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
.Если вы используете NixOS для Data Science:
Модули Python :
или
ИЛИ, если вы ищете специально для R пакетов / библиотек
в качестве альтернативы вы получаете пакеты ig npm с:
также есть сайт для поиска pkgs
источник
Я хотел бы сохранить результат
nix-env -v -qaP '*'
в файл (как правило, требуется время, чтобы вернуться).Имейте в виду, nix-env, кажется, игнорирует вещи под
haskellPackages
(и, возможно, другие).Поиск по nix-env в настоящее время довольно неприятен, так как это займет 5+ секунд, а затем вернется с
error: regex error
...источник
Дополнительные к Миржану варианты: вы можете проверить
/nix/store
какgrep -irw "programm-name" /nix/store
. Но это может быть немного запутанным. Также в вашем домашнем каталоге вы можете проверить каталог на.local/share
наличие установленных программ / приложений.источник