2012-03-15 71 views
5

我尝试安装jmacro软件包。 它完美搭建,绝对没有问题。Haskell Cabal:神秘缺失或递归依赖关系

然而,当我想用​​它或安装软件包像happstack-jmacro,这取决于jmacro,我得到的错误信息是这样的:

<command line>: cannot satisfy -package-id jmacro-0.5.2-71bd40707d94b0e8eb6e70515ff6a5f4: 
    jmacro-0.5.2-71bd40707d94b0e8eb6e70515ff6a5f4 is unusable due to missing or recursive dependencies: 
     haskell-src-meta-0.5-4bf46b12fb313927e18a04de209944de template-haskell-2.5.0.0-f0b857ddb066aae09d974e610edd228f 
    (use -v for more information) 

绝对没有任何递归或缺少的依赖关系。这是一个错误?

我使用template-haskell-2.5.0.0(因为较新的版本不会生成)和haskell-src-meta-0.5。 GHC是7.0.4

+2

啊,卡巴尔依赖地狱。 – 2012-03-15 17:57:20

回答

2

OK,解决了它自己:

有一个错误,template-haskell-2.5.0.0被安装在我的用户目录阴谋的系统目录,以及。

当我在我的用户目录中强制取消注册template-haskell时,一切都很好。

11

看起来你的软件包坏了。 ghc-pkg check可能会抱怨一些包;如果是这样,你可以将它们全部放在ghc-pkg unregister <pkg>。否则,最好的事情可能是重新开始:保存您的~/.cabal/config文件,摆脱~/.ghc~/.cabal,并重新安装cabal-install

像这样的卡瓦尔问题是相当普遍的,所以你可能想要考虑减轻cabal-dev的痛苦。