2011-09-20 5 views
4

yesod를 설치하려고하는 Arch (64) 기계가 2 대 있습니다. 첫 번째로 단순한 'cabal installodod'가 훌륭하게 진행됩니다. aesod 네이티브 의존성을 구축하는 동안 두 번째, 나는 다음과 같은 오류가 발생합니다 : 오류가 위, 나는 신선한 GHC 설치했다, 그리고-GHC PKG 및 .cabal 디렉토리를 제거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

후. 다시, 같은 오류. aeson-native는 아무 문제가없는 것 같습니다. 다른 곳에서도 잘 작동하므로 내 환경이 어떻게 든 비난 받아야합니다. 실패한 머신에서 나는 과거에 팩맨을 사용하여 hackage libs를 관리했다 (대부분 xmonad 용). 문제가되는지는 확실하지 않지만, 카발과 팩맨이 어떻게 서로 무엇을하고 있는지 알 수는 없습니다.

GHC는 7.0.3이다. 모든 설치 이전에 카발 업데이트를 수행했습니다. 이 환경에 어떤 문제가있을 수 있습니까?

감사/O

답변

5

당신은 혼자가 아닙니다. 다음과 같이 수정해야합니다.

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

aeson 패키지를 설치할 수 있습니다. 당신은 내가 너무 며칠 전이 버그를했다 ghc-pkg list deepseq


을 입력하여 설치 한 deepseq-1.2.0.1가 실제로 있다고 확인하지만, 제발 aeson하지 aeson-native합니다. 나는 그때에 github에 fix을 요청했고 그것은 불행히도 aeson이 아니라 aeson-native에 대해서만 이미 hackage에있다. aeson-native 패키지에 대한 픽스 요청을 시도해 볼 것을 권해드립니다. 커뮤니티에 뭔가를 돌려 주면 정말 좋습니다! :)

+0

고맙습니다. 해커가 어떻게되었는지에 대한 자세한 설명은 아래 포스터에 있습니다. 좁은 패키지 제약은 내가 실제로 내놓을 수 있고 완전히 망칠 수없는 것입니다. 모두에게 감사드립니다! – jdo

+0

그것은 당신을 위해 일해 주어 기쁘다. 그리고 당신은 또한 해머 더 유익한 대답을 해석 할 수 있었다. Btw. github 온라인 편집기를 사용하면 이러한 한 줄짜리 끌어 오기 요청에 큰 이점을 줄 수 있습니다. 전체 clone-pull-edit-commit-push-pullrequest 단계를 피할 수 있습니다. :디 – Tarrasch

3

ObjectData.Map 단지 타입 동의어이며, Data.Map에 대한 NFData 인스턴스 최근 moved from the deepseq package to containers 것을 나타납니다.

그러나이 새로운 버전의 containers은 아직 Hackage에서 출시되지 않았으므로 최신 버전 deepseq을 사용하고 있기 때문에 어느 패키지에도 인스턴스가 없습니다.

곧 수정 될 것으로 예상됩니다. 그 사이에 deepseq을 인스턴스가 이동되기 전에 최신 버전 인 1.1.0.2으로 다운 그레이드 할 수 있어야합니다.

관련 문제