首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >haskell-堆栈不安装QuickCheck

haskell-堆栈不安装QuickCheck
EN

Stack Overflow用户
提问于 2017-08-10 03:33:27
回答 1查看 4.1K关注 0票数 0

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

代码语言:javascript
复制
$ stack install QuickCheck

$

该命令暂停一秒钟,然后返回到shell,只打印一个空行。但是,这会使而不是看起来成功地安装了QuickCheck,因为运行$ ghc-pkg list无法找到包。

代码语言:javascript
复制
$ ghc-pkg list | grep QuickCheck

$

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

代码语言:javascript
复制
$ 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要多得多。

我用的是尼克斯17.03。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-10 03:50:46

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

较长时间:

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

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45603977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档