Mii*_*kka 9 compiling package-management haskell nix
我正在使用 Nix 在资源有限的共享主机上安装我家下的软件包(因此没有二进制软件包)。我正在尝试安装 git-annex。在构建其依赖项之一 haskell-lens 时,单元测试消耗了太多内存,以至于它们被杀死并且安装失败。
有没有办法跳过单元测试来安装软件包?我查看了 Cabal builder,haskell-packages.nix
在我看来,您可以通过设置enableCheckPhase
为 false来禁用测试。我在 中尝试了以下操作~/.nixpkgs/config.nix
,但测试仍在运行:
{
packageOverrides = pkgs: with pkgs; {
# ...other customizations...
haskellPackages = haskellPackages.override {
extension = self : super : {
self.lens = self.disableTest self.lens;
};
};
};
}
Run Code Online (Sandbox Code Playgroud)
Gab*_*lez 13
nixpkgs
reorganized things since the accepted answer was posted and there is a new function for disabling tests. You now wrap any Haskell package with the pkgs.haskell.lib.dontCheck
function to disable tests. Here is an example Nix expression from one of my Haskell projects where I had to disable tests for the shared-memory
dependency when building on OS X:
{ pkgs ? import <nixpkgs> {}, compiler ? "ghc7103" }:
pkgs.haskell.packages.${compiler}.callPackage ./my-project.nix
{ shared-memory =
let shared-memory = pkgs.haskell.packages.${compiler}.shared-memory;
in if pkgs.stdenv.isDarwin
then pkgs.haskell.lib.dontCheck shared-memory
else shared-memory;
}
Run Code Online (Sandbox Code Playgroud)
我看到您试图使用disableTest
find inhaskell-package.nix
来删除镜片包装中的测试。我必须做一些测试才能确切地告诉你为什么它不能满足你的需求。
我已禁用一般测试覆盖到中cabal
的包。这会覆盖其余 haskell 包使用的包,关闭测试。config.nix
cabalNoTest
cabal
我通常是这样写的:
{
packageOverrides = pkgs: with pkgs; {
# ...other customizations...
haskellPackages = haskellPackages.override {
extension = self : super : {
cabal = pkgs.haskellPackages.cabalNoTest;
};
};
};
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3381 次 |
最近记录: |