【问题标题】:How can I disable testing for a Haskell package in Nix?如何在 Nix 中禁用对 Haskell 包的测试?
【发布时间】:2020-03-20 20:53:03
【问题描述】:

我正在尝试使用 Nix 为 Haskell 创建一个开发环境。我有一个 default.nix,它只是引用我的 .cabal 文件来获取软件包列表。但是我想使用的一个包 numhask-space 不会构建,因为测试失败了。所以我试图覆盖它并跳过测试。

这是我的 default.nix:

# default.nix
let
  pkgs = import <nixpkgs> { };
in
  pkgs.haskellPackages.developPackage {
    root = ./.;
    modifier = drv:
      pkgs.haskell.lib.addBuildTools drv (with pkgs.haskellPackages;
        [ cabal-install
          ghcid
        ]);
    source-overrides = {
      numhask-space = pkgs.haskell.lib.dontCheck pkgs.haskellPackages.numhask-space;
        };
  }

但我不能这样做,因为我得到了错误:

cabal2nix: user error (Failed to fetch source. Does this source exist? Source {sourceUrl = "/nix/store/w3pcvlj7b0k44v629k00kw2b0k86fcyj-numhask-space-0.3.0", sourceRevision = "", sourceHash = Guess "", sourceCabalDir = ""})

简而言之,我怎样才能覆盖这个 haskell 包,使其不运行测试,并且我可以将它安装在我的开发环境中?

【问题讨论】:

  • 你试过overrides = self: super: { numhask-space = dontCheck super.numhask-space; }吗?

标签: haskell nix


【解决方案1】:

source-overrides 覆盖包的来源,即字面意义上的src 属性,而不是作为一个整体的包。您应该改用 overrides 参数:

    overrides = self: super: {
      numhask-space = pkgs.haskell.lib.dontCheck super.numhask-space;
    };

【讨论】:

    猜你喜欢
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    相关资源
    最近更新 更多