Nix频道和GHC / Hackage包版本

时间:2017-11-11 14:41:30

标签: haskell nix

我目前正在 Nix和Haskell 上完成Gabriel's tutorial

在nix中有channels,它们包含  (类似于Stack LTS版本) 一套精选的Hackage包和一个GHC编译器。

每一个人 LTS版本Stackage显示GHC编译器的版本和版本 每个Hackage包。在开始使用频道之前,我在哪里可以查找nix频道的这些信息?

2 个答案:

答案 0 :(得分:1)

给出一个修订哈希,假设683c68232e91f76386db979c461d8fbe2a018782,您可以使用该列表列出该修订中的所有软件包

nix-env -qaP -f https://github.com/NixOS/nixpkgs-channels/archive/683c68232e91f76386db979c461d8fbe2a018782.tar.gz

您还可以混合和匹配来自不同修订版的软件包。唯一的缺点是没有官方的方法可以搜索软件包的旧版本。

我写了https://lazamar.co.uk/nix-versions来帮助您。它显示了软件包的所有过去版本,它们来自什么版本以及如何安装它们。

答案 1 :(得分:0)

对于Haskell软件包的版本,我找到了答案:有https://raw.githubusercontent.com/NixOS/nixpkgs/release-16.09/pkgs/development/haskell-modules/hackage-packages.nix之类的文件。这些文件不是很容易使用......

修改

在这个文件中,我可以 搜索= "base"然后我可以找到base库的版本。 从基础库的版本我可以{GHC版本lookup

这给出了下表:

newest   -> base-4.10.0.0    -> GHC 8.2.1
17.09    -> base-4.10.0.0    -> GHC 8.2.1
17.03    -> base-4.9.1.0     -> GHC 8.0.2
16.09    -> base-4-9.0.0     -> GHC 8.0.1
16.03    -> base-4.8.2.0     -> GHC 7.10.3
15.09    -> base-4.8.2.0     -> GHC 7.10.3

然而,更简单的方法会很好......