haskell - 将覆盖应用到 haskellPackages

标签 haskell nix

我发现通过覆盖我们可以轻松定制 nixpkgs。快速谷歌搜索我得到了这样的很好的结果,取自:

# Creating an overlay
let overlay1 = self: super:
{
   google-chrome = super.google-chrome.override {
   commandLineArgs =
     "--proxy-server='https=127.0.0.1:3128;http=127.0.0.1:3128'";
   };
};

# Actually using it
import <nixpkgs> { overlays = [ overlay1 ]; }

但我实际上不知道如何使用覆盖来修改现有的 haskell 包。我想禁用带有覆盖层的 hasktags 测试。救命!

最佳答案

经过更多挖掘,这对我有用:

self: super: {
  haskellPackages = super.haskellPackages.override {
    overrides = haskellSelf: haskellSuper: {
      hasktags = self.haskell.lib.dontCheck haskellSuper.hasktags;
    };
  };
}

并将其放在 ~/.config/nixpkgs/overlays.nix~/.config/nixpkgs/overlays/ 目录中。

上面的示例是当您想要禁用对 hasktags 进行测试时的情况。这个想法适用于所有其他包。

关于haskell - 将覆盖应用到 haskellPackages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51317604/

相关文章:

haskell - 函数式编程语言中的调用站点代码替换

haskell - 使用 Aeson 泛型构造 JSON,其中一个值作为包含另一个值的键

haskell - 如何根据两个输入在 Haskell 中生成无限列表?

scala - 你如何使用标准库编写 foldWhile?

development-environment - 有没有办法组合 Nix 表达式来为 `nix-shell` 创建开发环境

nix - 如何将我的 nix 环境重置为原始用户配置文件?

由于缺少 nixos channel ,nixos-rebuild 无法构建

Haskell 函数声明

nix - 我不明白为什么我有 "cannot evaluate a function that has an argument without a value (' fetchurl')“当我尝试构建一个包时

nix - nix 可以安装在/nix 以外的其他位置吗?