小屋使用(Haskell)

0at*_*man 8 dependencies install haskell cabal hackage

Cabal 不断有依赖性问题.这真的很累人.到目前为止,我已经尝试了很多工作,这是我尝试安装snap:

$ sudo cabal install snap-server
Resolving dependencies...
cabal: cannot configure ListLike-1.1.0. It requires mtl >=1.1.0 && 1.2
For the dependency on mtl >=1.1.0 && 1.2 there are these packages:
mtl-1.1.0.0, mtl-1.1.0.1, mtl-1.1.0.2 and mtl-1.1.1.0. However none of them
are available.
mtl-1.1.0.0 was excluded because mtl-2.0.0.0 was selected instead
mtl-1.1.0.0 was excluded because monads-fd-0.1.0.3 requires mtl ==2.*
mtl-1.1.0.1 was excluded because mtl-2.0.0.0 was selected instead
mtl-1.1.0.1 was excluded because monads-fd-0.1.0.3 requires mtl ==2.*
mtl-1.1.0.2 was excluded because mtl-2.0.0.0 was selected instead
mtl-1.1.0.2 was excluded because monads-fd-0.1.0.3 requires mtl ==2.*
mtl-1.1.1.0 was excluded because mtl-2.0.0.0 was selected instead
mtl-1.1.1.0 was excluded because monads-fd-0.1.0.3 requires mtl ==2.*

我在安装Happstack等方面遇到类似的问题.使用cabal ...的工作是什么?我已经尝试过了:

export PATH=/home/user/.cabal/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

Joh*_*n L 7

问题是snap-server-0.2.15对monads-fd有无限制的依赖.最新版本monads-fd-0.1.0.3需要mtl-2.*不幸的是,这与依赖于ListLike(通过iteratee)冲突,这需要mtl <2.0.这两个限制都无法同时实现,因此cabal放弃了.

试试跑步cabal install snap-server --constrain="monads-fd=0.1.0.2".这将迫使早期版本的monads-fd不需要mtl,我认为一切都会正常工作.

如果您遇到很多软件包的问题,​​可能是由于mtl最近上传的新软件.您可以尝试添加--constrain="mtl<2",这可能有所帮助.

维护者的道德:遵循Haskell PVP并始终使用上限依赖.

注意即使我上传了一个与mtl-2一起使用的新ListLike(我很快就会这样做),这也无法解决您的问题,因为由于iteratee的上限而不会选择新的ListLike.