如何在 Nix 中禁用对 Haskell 包的测试?
How can I disable testing for a Haskell package in Nix?
我正在尝试使用 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 包,使其不 运行 测试,并且我可以将它安装在我的开发环境中?
source-overrides
覆盖包的来源,即字面上的 src
属性,而不是整个包。您应该改用 overrides
参数:
overrides = self: super: {
numhask-space = pkgs.haskell.lib.dontCheck super.numhask-space;
};
我正在尝试使用 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 包,使其不 运行 测试,并且我可以将它安装在我的开发环境中?
source-overrides
覆盖包的来源,即字面上的 src
属性,而不是整个包。您应该改用 overrides
参数:
overrides = self: super: {
numhask-space = pkgs.haskell.lib.dontCheck super.numhask-space;
};