2016-06-21 38 views
0

我試圖使用cabal來安裝mtl,但它告訴我我錯過了transformers ==0.4.* && ==0.5.2.0cabal未能安裝mtl缺少變形金剛的依賴關係

$ cabal install mtl 
Resolving dependencies... 
Configuring mtl-2.2.1... 
cabal.exe: At least the following dependencies are missing: 
transformers ==0.4.* && ==0.5.2.0 
cabal.exe: Error: some packages failed to install: 
mtl-2.2.1 failed during the configure step. The exception was: 
ExitFailure 1 

我在這裏住了近一個星期。我在版本0.4.3.0和0.5.2.0中安裝了變壓器。我的cabal版本是1.10.2.0,我的ghc是7.6.3。我是ghc的新手,所以我找不出什麼問題。我不明白transformers ==0.4.*是什麼意思。有什麼建議麼?非常感謝!

+0

事實上,需要兩種不同版本的變壓器令人擔憂。您的安裝有問題。你在使用沙箱嗎? –

回答

2

transformers ==0.4.* && ==0.5.2.0 

是在變壓器庫的版本依賴約束。這裏指出它要求變壓器版本同時是0.4。*和0.5.2.0。 儘管可以安裝不同的版本,但在編譯期間只能使用一個版本 - 因此,這個約束永遠不能滿足。

由於某些原因,cabal似乎與mtl軟件包的兩個revisions混淆。 第二次修訂增加了對變形金剛-5的支持。另請參閱mtl的issue 30,其中注意到hackage的元數據是第二個修訂版,但最終下載的源tarball是原始修訂版。

,直到新版本母語被釋放,你必須明確地安裝變壓器-0.4.3.0(和該版本),然後安裝MTL。

cabal install transformers-0.4.3.0 

如果在安裝mtl時滿足依賴關係,則變換器-0.4.3.0將通過依賴性檢查。 似乎cabal會在安裝該版本時自動添加最新版本作爲依賴項(例如== transformers-0.5.2.0)。因此,只應安裝0.4。*版本。

如果您已經安裝了最新版本的變壓器,您可以uninstall it

ghc-pkg unregister --force transformers-0.5.2.0 
rm -r .cabal/packages/hackage.haskell.org/transformers/0.5.2.0 

(這樣做對已安裝的每個5.x版,見cabal info transformers用於安裝的版本列表。)

+0

這也間接地阻止了我通過cabal安裝xmobar。 – user2664470