我正在按照本指南设置nix和haskell-ng。但是当我踏上一步
nix-env -iA nixpkgs.haskellEnv
然后我得到错误:
错误:在选择路径“ nixpkgs.haskellEnv”中找不到属性“ nixpkgs”
知道出了什么问题吗?
该命令nix-env -f "<nixpkgs>" -iA haskellEnv应该起作用。
从http://nixos.org/nixpkgs/manual/#users-guide-to-the-haskell-infrastructure引用:
属性路径是Nixpkg内部的确定性路径,但是达到Nixpkgs所需的路径因系统而异。我们通过提供
nix-env一个显式-f "<nixpkgs>"参数来回避该问题 ,但是如果调用时nix-env不带该标志,则调用失败的可能性很大:Run Code Online (Sandbox Code Playgroud)$ nix-env -iA haskellPackages.cabal-install error: attribute ‘haskellPackages’ in selection path ‘haskellPackages.cabal-install’ not found例如,在NixOS上,默认情况下,顶级名称空间中不存在Nixpkgs 。要找出正确的属性路径,最简单的方法是查询众所周知的Nixpkgs软件包的路径,即:
Run Code Online (Sandbox Code Playgroud)$ nix-env -qaP coreutils nixos.coreutils coreutils-8.23如果您的系统做出这样的响应(大多数NixOS安装会做出响应),则的属性路径
haskellPackages为nixos.haskellPackages。因此,如果您想在nix-env不给出显式-f标志的情况下使用,那么这就是这样做的方法:Run Code Online (Sandbox Code Playgroud)$ nix-env -qaP -A nixos.haskellPackages $ nix-env -iA nixos.haskellPackages.cabal-install
| 归档时间: |
|
| 查看次数: |
835 次 |
| 最近记录: |