簡體   English   中英

“鏡頭”的 Cabal 依賴解析失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM