haskell - 在 NixOS 上强制 Haskell Stack 为 1.7.* 版本
问题描述
语境。
- 我正在运行 NixOS,
stack
包含在我的configuration.nix
. - 运行
stack --version
产量Version 1.6.3 x86_64
。 - 但是我需要 Version
>=1.7
来编译我的团队正在开发的前沿 Haskell 包。 - nixpkgs 搜索的当前版本是
1.6.5
,无论如何它太旧了。 - 我认为通常在非 NixOS 上,您可以在主文件夹中运行“堆栈升级”,但这似乎不起作用。
问题:有谁知道如何强制 NixOS 上的堆栈编译到版本,即1.7.1
?
解决方案
添加此叠加层应该可以解决问题:
(self: super: {
haskellPackages = super.haskellPackages.extend
(hself: hsuper: {
stack = (hsuper.callHackage "stack" "1.7.1" {})
.overrideScope (hself2: hsuper2: {
Cabal = hself2.Cabal_2_2_0_1;
hpack = hself2.hpack_0_28_2;
});
});
})
这成功地建立stack
在 Nixpkgs master 之上。它将作为stack
属性或haskellPackages.stack
属性可用。
推荐阅读
- c# - 插值逐字字符串文字中的 C# 预处理器指令
- amazon-cloudformation - 当参数更改时,如何使 Cloudformation 使用宏重新处理模板?
- ruby-on-rails - 每周一午夜执行相同的功能
- c# - 无法使用
Razor 页面上的标签助手? - javascript - 如何在 Javascript 中循环 JSON 响应以获取特定数据
- sas - 根据以下情况使用 JOIN 条件更新 SQL
- javascript - 在 Node.js 服务器上将 PDF 转换为图像
- python - 请帮助编写一个解决队列问题的程序
- python - Python bs4 - find_all 多个标签和类
- raspberry-pi - 如何将 Raspberry Pi 连接到我的 Linux 笔记本电脑?