2011-09-20 125 views
4

我有兩臺Arch(64)機器,我試圖安裝yesod。首先,一個簡單的'cabal install yesod'出色地進行。關於第二個,我收到以下錯誤,而建設aesod本地依賴性:爲什麼aeson-native安裝失敗?

Configuring aeson-native-0.3.3...
Preprocessing library aeson-native-0.3.3...
Building aeson-native-0.3.3...
[1 of 6] Compiling Data.Aeson.Functions (Data/Aeson/Functions.hs, dist/build/Data/Aeson/Functions.o)
[2 of 6] Compiling Data.Aeson.Types (Data/Aeson/Types.hs, dist/build/Data/Aeson/Types.o)

Data/Aeson/Types.hs:196:22:
No instance for (NFData Object)
arising from a use of rnf'<br> Possible fix: add an instance declaration for (NFData Object)<br> In the expression: rnf o<br> In an equation for rnf': rnf (Object o) = rnf o
In the instance declaration for `NFData Value'
cabal: Error: some packages failed to install:
aeson-native-0.3.3 failed during the building phase. The exception was:
ExitFailure 1

後失敗,並且我做了一個新的GHC安裝,並取消了GHC-PKG和.cabal目錄。同樣的錯誤。埃森本地人似乎沒有錯,因爲它在其他地方運作良好,所以我的環境必須以某種方式責怪。在發生故障的機器上,我過去曾嘗試過使用pacman來管理hackage libs(主要用於xmonad)。不知道它是否應該重要,但我從來沒有確定如何/如果cabal和pacman知道對方正在做什麼。

GHC是7.0.3。我在所有安裝之前進行了更新。任何想法可能會在這個環境中出錯?

感謝/ O

回答

5

你並不孤單。這應該能夠得到固定的:

> cabal install deepseq-1.1.0.2 
> ghc-pkg unregister deepseq-1.2.0.1 --force 

然後你就可以安裝任何aeson包。請驗證它確實deepseq-1.2.0.1你鍵入ghc-pkg list deepseq


我有這個錯誤太前幾天安裝,但不aesonaeson-native。我拉請github fix然後它已經在hackage,但不幸的只有aeson而不是aeson-native。我可以建議你嘗試拉請求修復aeson-native包。回饋社區真的很好,嘗試一下吧! :)

+0

非常感謝,這解決了它(並感謝下面的海報更詳細地描述了在Hackage上發生的事情)。縮小包裝限制是我可能實際上能夠自己推出並且不會完全搞砸的事情。謝謝大家! – jdo

+0

很高興爲你工作,並且你也可以解釋hammars更豐富的答案。順便說一句。您可以使用github在線編輯器爲這些單線程的請求提供真正的優勢。您避免了整個克隆 - 拉 - 編輯 - 提交 - 推 - 拉請求步驟。 :d – Tarrasch

3

Object僅僅是一個Data.Map一種代名詞,它看來,NFData實例Data.Map是最近moved from the deepseq package to containers

然而,這個containers的新版本顯然還沒有在Hackage上發佈,所以既然你使用的是最新版本的deepseq,那麼這個實例在任何一個包中都找不到。

我希望這個問題很快就會被糾正。與此同時,您應該能夠將deepseq降級到版本1.1.0.2,這是實例移動之前的最新版本。

相關問題