我是haskell初学者,我用代码的出现作为学习示例。在为今年做准备时,我重新安装了堆栈(无论是在一台新机器上还是复制了大多数dotfile),并且是从我最后几年的笔记开始的,并且无法让hdevtools再次工作。
我已经和stack new advent2019建立了一个新项目。如果这件事发生在“空”项目上,stack build似乎要花上几分钟--似乎比去年要长得多。我用stack build hdevtools安装了hdevtools。
当我运行stack exec hdevtools -- check src/Lib.hs时,会得到以下错误:
Cabal error: hdevtools: Use of GHC's environment variable GHC_PACKAGE_PATH is incompatible
with Cabal. Use the flag --package-db to specify a package database (it can be
used multiple times).到目前为止我试过:
rg --no-ignore来确认我没有设置GHC_PACKAGE_PATH。也在项目目录上。--package-db标志--把它放在杂耍工具之后,我得到了一个unknown flag错误,把它放到堆栈中,我得到了一个invalid option。stack exec --no-ghc-package-path hdevtools -- check src/Lib.hs -提到的这里~/.local/bin/hdevtools,~/.stack中的所有内容,以及所有的~/.ghc*。没有人对这个错误有所帮助。
我想我忽略了一些显而易见的东西--但是你能帮我指出吗?
为完整起见:
stack --version:Version 1.9.3, Git revision 40cf7b37526b86d1676da82167ea8758a854953b (6211 commits) x86_64 hpack-0.31.1stack ghc -- --version:The Glorious Glasgow Haskell Compilation System, version 8.6.5stack path:stack-root: /Users/me/.stack
project-root: /Users/me/Code/advent2019
config-location: /Users/me/Code/advent2019/stack.yaml
bin-path: /Users/me/.stack/snapshots/x86_64-osx/lts-14.16/8.6.5/bin:/Users/me/.stack/compiler-tools/x86_64-osx/ghc-8.6.5/bin:/Users/me/.stack/programs/x86_64-osx/ghc-8.6.5/bin:/usr/local/texlive/2018basic/bin/x86_64-darwin:/Users/me/.local/bin/:/Users/me/.gem/bin:/Users/me/.yarn/bin:/Users/me/Library/Python/3.7/bin/:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Library/TeX/texbin:.:/Applications/Wireshark.app/Contents/MacOS
programs: /Users/me/.stack/programs/x86_64-osx
compiler-exe: /Users/me/.stack/programs/x86_64-osx/ghc-8.6.5/bin/ghc
compiler-bin: /Users/me/.stack/programs/x86_64-osx/ghc-8.6.5/bin
compiler-tools-bin: /Users/me/.stack/compiler-tools/x86_64-osx/ghc-8.6.5/bin
local-bin: /Users/me/.local/bin
extra-include-dirs:
extra-library-dirs:
snapshot-pkg-db: /Users/me/.stack/snapshots/x86_64-osx/lts-14.16/8.6.5/pkgdb
local-pkg-db: /Users/me/Code/advent2019/.stack-work/install/x86_64-osx/lts-14.16/8.6.5/pkgdb
global-pkg-db: /Users/me/.stack/programs/x86_64-osx/ghc-8.6.5/lib/ghc-8.6.5/package.conf.d
ghc-package-path: /Users/me/Code/advent2019/.stack-work/install/x86_64-osx/lts-14.16/8.6.5/pkgdb:/Users/me/.stack/snapshots/x86_64-osx/lts-14.16/8.6.5/pkgdb:/Users/me/.stack/programs/x86_64-osx/ghc-8.6.5/lib/ghc-8.6.5/package.conf.d
snapshot-install-root: /Users/me/.stack/snapshots/x86_64-osx/lts-14.16/8.6.5
local-install-root: /Users/me/Code/advent2019/.stack-work/install/x86_64-osx/lts-14.16/8.6.5
snapshot-doc-root: /Users/me/.stack/snapshots/x86_64-osx/lts-14.16/8.6.5/doc
local-doc-root: /Users/me/Code/advent2019/.stack-work/install/x86_64-osx/lts-14.16/8.6.5/doc
dist-dir: .stack-work/dist/x86_64-osx/Cabal-2.4.0.1
/Users/me/Code/advent2019/.stack-work/install/x86_64-osx/lts-14.16/8.6.5/hpc
local-bin-path: /Users/me/.local/bin
ghc-paths: /Users/me/.stack/programs/x86_64-osx发布于 2019-12-02 07:36:39
结果,我忽略了清除中的.cabal目录。尽管在安装.stack之前还必须擦除hdevtools。还必须单独构建测试,这样我就会得到依赖错误。
我不认为这是一个解决方案谁谁使用haskell有成效。让我想起我的Windows 95天,支持告诉你格式化和重新安装每一个问题。
发布于 2019-12-01 17:37:07
--no-ghc-package-path解决方案应该有效。但是,您可以在Stack之外运行hdevtools。在Linux机器上,如果我精确地运行以下一组命令:
$ stack new advent2019
$ cd advent2019
$ stack build
$ stack install hdevtools
$ hdevtools check src/Lib.hs然后,hdevtools在没有错误的情况下启动,并在后台运行。
如果您的shell找不到hdevtools,那么可能是~/.local/bin不在您的路径中,所以请添加它或尝试如下:
$ ~/.local/bin/hdevtools check src/Lib.hshttps://stackoverflow.com/questions/59124802
复制相似问题