【问题标题】:haskell-stack does not install QuickCheckhaskell-stack 不安装 QuickCheck
【发布时间】:2017-08-10 11:59:38
【问题描述】:

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

$ stack install QuickCheck

$

命令暂停一秒钟,然后返回到 shell,只打印一个空行。但是,这不会似乎成功安装 QuickCheck,因为无法通过运行 $ 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。

【问题讨论】:

    标签: haskell-stack


    【解决方案1】:

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

    更长:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多