Как исправить hdevtools - ошибка "GHC_PACKAGE_PATH несовместима .."
Я новичок в haskell, использую появление кода в качестве обучающих примеров. При настройке в этом году я переустановил стек (на новой машине, однако скопировал большинство файлов точек) и начал с моих прошлогодних заметок и не смог снова заставить hdevtools работать.
Я создал новый проект с stack new advent2019
. Если это имеет значениеstack build
На "пустой" проект вроде бы уходит несколько минут - кажется, намного дольше, чем в прошлом году. Я устанавливаю hdevtools с помощьюstack build 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
флаг - ставя его после hdevtools, я получаюunknown flag
ошибка, помещая его в стек, я получаюinvalid option
. stack exec --no-ghc-package-path hdevtools -- check src/Lib.hs
- упоминается здесь- Я удалил все возможные связанные файлы:
~/.local/bin/hdevtools
, все из~/.stack
, все~/.ghc*
.
Никто не помог с ошибкой.
Полагаю, я упустил из виду что-то очевидное - но вы можете указать на это?
Для полноты:
- в OS X, 10.15.1
stack --version
:Version 1.9.3, Git revision 40cf7b37526b86d1676da82167ea8758a854953b (6211 commits) x86_64 hpack-0.31.1
stack ghc -- --version
:The Glorious Glasgow Haskell Compilation System, version 8.6.5
stack 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
2 ответа
Оказывается, я упустил из виду .cabal
каталог в моей чистке. Хоть еще и протереть пришлось.stack
перед установкой hdevtools
. Также пришлось построить тест отдельно, чтобы я получал ошибки зависимости.
Я не думаю, что это решение для тех, кто продуктивно использует haskell. Напоминает мне дни, когда я работал с Windows 95, когда служба поддержки просила вас отформатировать и переустановить для каждой проблемы.
В --no-ghc-package-path
решение должно было работать. Однако вы можете просто запуститьhdevtools
вне стека. На машине Linux, если я точно выполню следующий набор команд:
$ stack new advent2019
$ cd advent2019
$ stack build
$ stack install hdevtools
$ hdevtools check src/Lib.hs
тогда hdevtools
запускается без ошибок и работает в фоновом режиме.
Если ваша оболочка не может найти hdevtools
, может быть, ~/.local/bin
не находится на вашем пути, поэтому добавьте его или попробуйте вместо этого:
$ ~/.local/bin/hdevtools check src/Lib.hs