我刚刚做了一个cabal更新并尝试从hackage安装’镜头’.这给了我以下错误 –
$cabal install -j lens Resolving dependencies... Configuring dlist-0.7.0.1... ... <snip> Configuring mtl-2.0.1.0... Building mtl-2.0.1.0... Failed to install mtl-2.0.1.0 Last 10 lines of the build log ( /home/aj/.cabal/logs/mtl-2.0.1.0.log ): Building mtl-2.0.1.0... Preprocessing library mtl-2.0.1.0... [ 1 of 21] Compiling Control.Monad.Writer.Class ( Control/Monad/Writer/Class.hs,dist/build/Control/Monad/Writer/Class.o ) [ 2 of 21] Compiling Control.Monad.State.Class ( Control/Monad/State/Class.hs,dist/build/Control/Monad/State/Class.o ) [ 3 of 21] Compiling Control.Monad.Reader.Class ( Control/Monad/Reader/Class.hs,dist/build/Control/Monad/Reader/Class.o ) [ 4 of 21] Compiling Control.Monad.RWS.Class ( Control/Monad/RWS/Class.hs,dist/build/Control/Monad/RWS/Class.o ) [ 5 of 21] Compiling Control.Monad.Identity ( Control/Monad/Identity.hs,dist/build/Control/Monad/Identity.o ) [ 6 of 21] Compiling Control.Monad.Error.Class ( Control/Monad/Error/Class.hs,dist/build/Control/Monad/Error/Class.o ) Control/Monad/Error/Class.hs:93:18: Not in scope: `catch' ... <snip> cabal: Error: some packages Failed to install: aeson-0.7.0.3 depends on mtl-2.0.1.0 which Failed to install. exceptions-0.6 depends on mtl-2.0.1.0 which Failed to install. free-4.7.1 depends on mtl-2.0.1.0 which Failed to install. lens-4.1.2 depends on mtl-2.0.1.0 which Failed to install. mtl-2.0.1.0 Failed during the building phase. The exception was: ExitFailure 1
所以看起来mtl-2.0.1.0已经坏了.然而,一些更多的依赖性跟踪揭示镜头包定义中的任何内容实际上都不依赖于mtl的那个版本.事实上,我尝试的下一件事是 –
$cabal install -j aeson $cabal install -j free $cabal install -j lens
这成功没有问题.
那么为什么cabal会在直接安装镜头时尝试安装mtl-2.0.1.0?我已经尝试删除我的.ghc和.cabal目录并重复这些步骤,结果相同.我使用的cabal版本是1.16 –
$cabal -V cabal-install version 1.16.0.2 using version 1.16.0 of the Cabal library
解决方法
我使用的解决方法是首先安装变压器 – compat与变压器3标志
$cabal install -ftransformer3 transformers-compat
然后安装带变压器0.3.0.0约束的镜头
$cabal install --constraint="transformers==0.3.0.0" lens
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。