我是Haskell的新手,并且正在使用Stack在Mac OSX上构建一个小型个人项目。我最近在我的cabal文件中添加了一些新的build-deps,但现在当我运行stack build
时,我收到以下错误:
-- While attempting to add dependency,
Could not find package api-builder in known packages
-- Failure when adding dependencies:
api-builder: needed (==0.11.0.0), not present in build plan (latest applicable is 0.11.0.0)
http-client: needed (==0.4.20), 0.4.27 found (latest applicable is 0.4.20)
http-types: needed (==0.8.6), 0.9 found (latest applicable is 0.8.6)
needed for package: music-haskell-0.1.0.0
Recommended action: try adding the following to your extra-deps in /Users/.../src/music-haskell/stack.yaml
- api-builder-0.11.0.0
You may also want to try the 'stack solver' command
当我运行stack solver
时,我收到有关http-types包的错误
cabal: Could not resolve dependencies:
trying: music-haskell-0.1.0.0 (user goal)
next goal: http-types (dependency of music-haskell-0.1.0.0)
rejecting: http-types-0.9 (conflict: music-haskell => http-types==0.8.6)
rejecting: http-types-0.8.6, 0.8.5, 0.8.4, 0.8.3, 0.8.2................
(global constraint requires ==0.9)
Dependency tree exhaustively searched.
据我所知,看起来我已经安装了http-types-0.9
,但现在我需要http-types-0.8.6
。我最初尝试使用$stack install http-types
手动安装它,但我收到以下错误:
Error parsing targets: Specified target version 0.8.6 for package http-types does not match snapshot version 0.9
当我查看是否可以执行$ stack uninstall
时,看起来它已被弃用。
如何摆脱http-type
??
答案 0 :(得分:3)
您可以通过extra-deps覆盖stack.yaml文件中的特定快照包,例如:
extra-deps:
- http-types-0.8.6
一旦开始包含具有冲突版本边界的软件包与您正在使用的快照相比,您最终可能会很快遇到这些问题。我推荐的解决方案是:
即使您不是作者,也可以自行向Stackage添加包。有关说明,请参阅the maintainer guide。