Nix 频道和 GHC/Hackage 包版本
Nix channels and GHC/Hackage package versions
我目前正在 Nix 和 Haskell 上完成 Gabriel's tutorial。
在 nix 中有 channels,它们包含
(类似于 Stack LTS 版本)
一组精选的 Hackage 包和一个 GHC 编译器。
每一个
LTS version Stackage 显示GHC编译器的版本和版本
每个 Hackage 包。在开始使用频道之前,我在哪里可以查找有关 nix 频道的信息?
对于 Haskell 包的版本我找到了答案:有像 https://raw.githubusercontent.com/NixOS/nixpkgs/release-16.09/pkgs/development/haskell-modules/hackage-packages.nix 这样的文件。这些文件真的不好用...
编辑
在这个文件中我可以
搜索 = "base"
然后我可以找到 base
库的版本。
从基础库的版本我可以 lookup GHC 版本。
这给出了以下 table:
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
然而,更简单的方法会更好...
给定修订散列,假设 683c68232e91f76386db979c461d8fbe2a018782
,您可以使用
列出该修订版中的所有包
nix-env -qaP -f https://github.com/NixOS/nixpkgs-channels/archive/683c68232e91f76386db979c461d8fbe2a018782.tar.gz
您还可以混合和匹配来自不同修订版的包。唯一的缺点是没有官方的方法来搜索旧版本的包。
我写了 https://lazamar.co.uk/nix-versions 来帮助解决这个问题。它显示了软件包的所有过去版本、它们的派生版本以及如何安装它们。
我目前正在 Nix 和 Haskell 上完成 Gabriel's tutorial。
在 nix 中有 channels,它们包含 (类似于 Stack LTS 版本) 一组精选的 Hackage 包和一个 GHC 编译器。
每一个 LTS version Stackage 显示GHC编译器的版本和版本 每个 Hackage 包。在开始使用频道之前,我在哪里可以查找有关 nix 频道的信息?
对于 Haskell 包的版本我找到了答案:有像 https://raw.githubusercontent.com/NixOS/nixpkgs/release-16.09/pkgs/development/haskell-modules/hackage-packages.nix 这样的文件。这些文件真的不好用...
编辑
在这个文件中我可以
搜索 = "base"
然后我可以找到 base
库的版本。
从基础库的版本我可以 lookup GHC 版本。
这给出了以下 table:
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
然而,更简单的方法会更好...
给定修订散列,假设 683c68232e91f76386db979c461d8fbe2a018782
,您可以使用
nix-env -qaP -f https://github.com/NixOS/nixpkgs-channels/archive/683c68232e91f76386db979c461d8fbe2a018782.tar.gz
您还可以混合和匹配来自不同修订版的包。唯一的缺点是没有官方的方法来搜索旧版本的包。
我写了 https://lazamar.co.uk/nix-versions 来帮助解决这个问题。它显示了软件包的所有过去版本、它们的派生版本以及如何安装它们。