引用http://nixos.org/nixpkgs/manual/#users-guide-to-the-haskell-infrastructure:
Nixpkgs 为在Hackage上注册的所有 Haskell 包分发构建指令
,但奇怪的是,正常的 Nix 包查找似乎没有发现任何一个,除了默认版本的 ghc、cabal-install 和 stack:
$ nix-env -i alex
error: selector ‘alex’ matches no derivations
$ nix-env -qa ghc
ghc-7.10.2
Haskell 包集没有在顶级命名空间中注册,因为它是巨大的. 如果这些命令可以看到所有 Haskell 包,那么基于名称的搜索/安装操作将比现在慢得多。我们通过将所有与 Haskell 相关的包保存在一个名为 的单独属性集中来避免这种情况,haskellPackages
以下命令将列出该属性集:
$ nix-env -f "<nixpkgs>" -qaP -A haskellPackages
haskellPackages.a50 a50-0.5
haskellPackages.abacate haskell-abacate-0.0.0.0
haskellPackages.abcBridge haskell-abcBridge-0.12
haskellPackages.afv afv-0.1.1
haskellPackages.alex alex-3.1.4
haskellPackages.Allure Allure-0.4.101.1
haskellPackages.alms alms-0.6.7
[... some 8000 entries omitted ...]
要将这些软件包中的任何一个安装到您的配置文件中,请通过它们的属性路径(第一列)引用它们:
$ nix-env -f "<nixpkgs>" -iA haskellPackages.Allure ...
任何 Haskell 包的属性路径对应于 Hackage 上该特定包的名称:该包cabal-install
具有属性
haskellPackages.cabal-install
,等等。