haskell-stack 没有安装 QuickCheck

haskell-stack does not install QuickCheck

正在尝试安装 QuickCheck,我 运行 $ stack install QuickCheck

$ stack install QuickCheck

$

命令暂停一秒钟,然后 returns 到 shell 只打印一个空行。然而,这 not 似乎无法成功安装 QuickCheck,因为 运行ning $ ghc-pkg list.

找不到该软件包
$ ghc-pkg list | grep QuickCheck

$

而且,因为在编译导入该模块的文件时我无法导入 Test.QuickCheck

$ ghc ImportsQuickCheck.hs
[1 of 1] Compiling ImportsQuickCheck ( ImportsQuickCheck.hs, ImportsQuickCheck.o )

ImportsQuickCheck.hs:6:1: error:
    Failed to load interface for ‘Test.QuickCheck’
    Use -v to see a list of the files searched for.

$

我 运行 stack install QuickCheck 来自我的主文件夹,它应该安装到我的全局安装,而不是来自它不会安装的堆栈项目。

为什么 stack install QuickCheck 无法安装该软件包?

为什么失败时没有输出?

有没有更好的方法来管理我的全局包集?也许使用 ghc-pkg 而不是 stack?我以前尝试过 cabal-install,但 运行 遇到这样的问题比我使用 stack.

的次数要多得多

我正在使用 nixos 17.03。

简答:你想要stack exec -- ghc-pkg describe QuickCheck

更长:

stack 管理不同的 GHC 安装,以及多级包数据库。因此,如果您在命令行上 运行 ghcghc-pkg,这可能是与 stack 使用的不同版本的 ghc。

ghc-pkg 通过查看您的 GHC_PACKAGE_PATH 环境变量来获取要查看的包数据库列表。如果未设置此变量,则它会使用您的全局和用户包数据库。这些不同于堆栈使用的数据库(stack exec 设置 GHC_PACKAGE_PATH 变量)

另外,请注意 stack installstack build 相同。唯一的区别是它将目标可执行文件安装到 ~/.local/bin。 Quickcheck 没有可执行文件,因此无需使用 "install"