4

yesod をインストールしようとしている Arch(64) マシンが 2 台あります。最初に、単純な 'cabal install yesod' が見事に進行します。2 番目に、aesod-native 依存関係の構築中に次のエラーが発生します。

aeson-native-0.3.3 の構成...
ライブラリ aeson-native-0.3.3 の前処理...
aeson-native-0.3.3 の構築...
[1/6] Data.Aeson.Functions のコンパイル ( Data/Aeson/ Functions.hs, dist/build/Data/Aeson/Functions.o )
[2 of 6] Data.Aeson.Types のコンパイル ( Data/Aeson/Types.hs, dist/build/Data/Aeson/Types.o)

Data/ Aeson/Types.hs:196:22: rnf の使用に起因する
(NFData オブジェクト) のインスタンスがありません: rnf (オブジェクト o) = rnf o 「NFData 値」 cabal のインスタンス宣言: エラー: 一部のパッケージが失敗しましたインストール: aeson-native-0.3.3 ビルド フェーズで失敗しました。例外は: ExitFailure 1
rnf'<br> Possible fix: add an instance declaration for (NFData Object)<br> In the expression: rnf o<br> In an equation for




上記の失敗の後、ghc の新規インストールを行い、ghc-pkg および .cabal ディレクトリを削除しました。繰り返しますが、同じエラーです。aeson-native は他の場所では問題なく動作するため、問題はないようです。障害が発生したマシンで、過去に pacman を使用してハック ライブラリを管理する実験を行いました (主に xmonad 用)。それが問題になるかどうかはわかりませんが、cabal と pacman がお互いに何をしているかをどのように/または理解しているかはわかりません.

GHC は 7.0.3 です。すべてのインストールの前に、cabal の更新を行いました。この環境で何が間違っている可能性がありますか?

ありがとうございます

4

2 に答える 2

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


私も数日前にこのバグを抱えていましたが、そうでaesonはありませんでしaeson-nativeた。私は githubで修正をプル リクエストしましたが、残念ながらそうではありaesonませんが、すでにハックされていaeson-nativeます。aeson-nativeパッケージの修正をプルリクエストしてみることをお勧めします。コミュニティに何かを還元するのは本当に気持ちがいいです、試してみてください! :)

于 2011-09-20T17:02:50.300 に答える
3

Objectは単に a の型シノニムでありData.Map、 のNFDataインスタンスData.Mapは最近パッケージからに移動されたdeepseqcontainersようです。

ただし、この新しいバージョンのcontainersは Hackage でまだリリースされていないようです。最新バージョンの を使用しているためdeepseq、どちらのパッケージにもインスタンスが見つかりません。

これはすぐに修正されると思います。その間、インスタンスが移動される前の最新バージョンであるdeepseqversionにダウングレードできるはずです。1.1.0.2

于 2011-09-20T14:50:10.110 に答える