[英]cabal dependency resolution fail for 'lens'
我剛剛做了一個陰謀更新,並試圖從 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會在直接安裝lens
時嘗試安裝mtl-2.0.1.0
呢? 我嘗試刪除我的 .ghc 和 .cabal 目錄並重復這些步驟,結果相同。 我使用的陰謀集團版本是 1.16 -
$ cabal -V
cabal-install version 1.16.0.2
using version 1.16.0 of the Cabal library
我使用的解決方法是首先安裝transformers-compat 與transformers 3 標志
$ cabal install -ftransformer3 transformers-compat
然后使用transformers 0.3.0.0約束安裝鏡頭
$ cabal install --constraint="transformers==0.3.0.0" lens
我也遇到了這個錯誤。 我想我已經設法通過手動解包mtl-2.0.1.0
來修復它,將catch
顯式添加到Control/Monad/Error/Class.hs
(L:55) 中Control.Exception
的導入列表中,然后運行cabal install
。
之后,我能夠運行cabal install lens
。 我很想知道這是否也適合你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.