Ошибка установки Nix и Haskell-ng: атрибут «nixpkgs» в пути выбора «nixpkgs.haskellEnv» не найден

Я следую этому руководству по настройке nix и haskell-ng. Но когда я выхожу на шаг

nix-env -iA nixpkgs.haskellEnv

тогда я получаю сообщение об ошибке:

ошибка: атрибут «nixpkgs» в пути выбора «nixpkgs.haskellEnv» не найден

Есть идеи, что происходит не так?


person jhegedus    schedule 20.06.2015    source источник
comment
В настоящее время я пытаюсь повторить попытку, основываясь на этом: nixos.org/wiki/Nix_on_OS_X#Using_Nix_on_10 .9_and_10.10, возможно, я допустил простые ошибки.   -  person jhegedus    schedule 20.06.2015
comment
Хорошо, похоже, теперь это работает.   -  person jhegedus    schedule 20.06.2015
comment
Он компилирует материал уже 1 час, что он делает так долго и почему?   -  person jhegedus    schedule 20.06.2015


Ответы (1)


Команда nix-env -f "<nixpkgs>" -iA haskellEnv должна работать.

Цитирование из http://nixos.org/nixpkgs/manual/#users-guide-to-the-haskell-infrastructure:

Пути атрибутов детерминированы внутри Nixpkgs, но путь, необходимый для достижения Nixpkgs, варьируется от системы к системе. Мы избежали этой проблемы, указав nix-env явный параметр -f "<nixpkgs>", но если вы вызываете nix-env без этого флага, то, скорее всего, вызов завершится неудачно:

$ nix-env -iA haskellPackages.cabal-install
error: attribute ‘haskellPackages’ in selection path
       ‘haskellPackages.cabal-install’ not found

В NixOS, например, Nixpkgs по умолчанию не существует в пространстве имен верхнего уровня. Чтобы определить правильный путь к атрибуту, проще всего запросить путь к известному пакету Nixpkgs, то есть:

$ nix-env -qaP coreutils
nixos.coreutils  coreutils-8.23

Если ваша система реагирует таким образом (большинство установок NixOS будет), то путь атрибута к haskellPackages равен nixos.haskellPackages. Таким образом, если вы хотите использовать nix-env без явного указания флага -f, то это можно сделать следующим образом:

$ nix-env -qaP -A nixos.haskellPackages
$ nix-env -iA nixos.haskellPackages.cabal-install
person Peter Simons    schedule 19.11.2015