依赖关系冲突:Dependencies conflict ,报出的错误时很让人摸不到头脑的,一般都是这样的:cabal: dependencies conflict: ghc-6.10.1 requires “somepackagename” ==1.0.1.1 however
“somepackagename” was excluded because ghc-6.10.1 requires “somepackagename”==1.0.1.0
这不是一会儿说需要这个一会又需要那个吗? 其实原因在于:
假设刚开始的ABC依赖关系是这样的:
A-1
/ |
/ |
B-1 |
/ |
/ |
C-1.0.1.0
当安装了一个C的1.0.1.1版本后依赖关系变为:
A-1
/ /
/ /
B-1 /
/ C-1.0.1.0
/
C-1.0.1.1
这样A就有了C的两个依赖包。于是上面的错误就不足为奇了。
解决方法: ghc-pkg unregister packagename
存在的问题:unregister之后依赖关系的变化不知道是如何解决的,A与C之间的直接关系不知道还存在不?待高人指点……
参考资料:http://haskell.1045720.n5.nabble.com/Dependencies-conflict-td3087177.html#a3087180