1

可能你们中的任何人都知道为什么

$ nix-shell \
  -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz \
  -p "haskellPackages.ghcWithPackages (p: [p.compose-ltr])" \
  --run ghci

失败了

Configuring compose-ltr-0.2.3...

Setup: Encountered missing dependencies:
QuickCheck ==2.8.1, hspec ==2.2.0

builder for ‘/nix/store/pvmm9qcp9xpj5hw77nbfyfj4wxs49jl8-compose-ltr-0.2.3.drv’ failed with exit code 1
cannot build derivation ‘/nix/store/41znxh9qi408n9j63fqvixrlkaasrgkx-ghc-8.0.1-with-packages.drv’: 1 dependencies couldn't be built

?

(为分隔和强调添加了空白线)

我在问,因为据我所知,我不是要求nix构建/运行 的单元测试compose-ltr,那么它为什么要关心QuickCheckandhspec呢?

是的,文件中提到了.cabaltest-suite speclibraryQuickCheck 和 hspec ,但仅用于而不是.


此外,我可以通过以下方式解决此问题吗

  1. nix-shell在我的命令中进一步指定一些东西,
  2. 更改.cabal文件中的某些内容compose-ltr,或
  3. .nix文件添加到compose-ltr?

我不会说我有很多经验nix,所以欢迎详细回答。

4

1 回答 1

3

代替

p.compose-ltr

(haskell.lib.dontCheck p.compose-ltr)

禁用此包的测试。总体而言,这应该包含在https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/haskell-modules/configuration-common.nix中(我认为欢迎 GitHub 上的 PR)

于 2017-02-05T12:31:14.260 回答