我在使用Haskell和阴谋集团方面很陌生,我正在尝试安装带有cabal install --lib plot
的软件包Haskell软件包plot,我得到了这个
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: binary-0.8.8.0/installed-0.8.8.0 (user goal)
[__1] next goal: containers (user goal)
[__1] rejecting: containers-0.6.4.1 (conflict: binary =>
containers==0.6.2.1/installed-0.6.2.1)
[__1] rejecting: containers-0.6.3.1, containers-0.6.2.1/installed-0.6.2.1,
containers-0.6.2.1, containers-0.6.1.1, containers-0.6.0.1,
containers-0.5.11.0, containers-0.5.10.2, containers-0.5.10.1,
containers-0.5.9.2, containers-0.5.8.2, containers-0.5.7.1,
containers-0.5.7.0, containers-0.5.6.3, containers-0.5.6.2,
containers-0.5.6.1, containers-0.5.6.0, containers-0.5.5.1,
containers-0.5.5.0, containers-0.5.4.0, containers-0.5.3.1,
containers-0.5.3.0, containers-0.5.2.1, containers-0.5.2.0,
containers-0.5.1.0, containers-0.5.0.0, containers-0.4.2.1,
containers-0.4.2.0, containers-0.4.1.0, containers-0.4.0.0,
containers-0.3.0.0, containers-0.2.0.1, containers-0.2.0.0,
containers-0.1.0.1, containers-0.1.0.0, containers-0.5.9.1, containers-0.5.8.1
(constraint from user target requires ==0.6.4.1)
[__1] fail (backjumping, conflict set: binary, containers)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: binary, containers, ghc
我尝试分别安装容器和二进制文件,但遇到了类似的错误。
当您使用cabal install --lib
而不了解它的作用时,就会发生这种情况。简而言之,它不适合拥有不断更新的全局库集。它实际上只能使用一次。要再次使用它,您必须删除它创建的环境文件,并将其与您希望在单个cabal
调用中可用的库的完整列表一起使用。老实说,这是一种痛苦,在几乎所有情况下,使用阴谋集团文件都是更好的工作方式。
创建一个新目录,在其中运行cabal init
,将所需的包添加到生成的阴谋集团文件中,将代码放入生成的 Main.hs 中,试验cabal repl
,运行cabal exec
。它不必比这更复杂,并且您可以通过相互独立地固定包版本来避免给自己带来额外的问题。