2012-03-29 2 views
3

다른 컴퓨터에 Yesod 웹 앱을 설치하려고합니다.Yesod 설치시 zlib-enum, zlib-binding, zlib-conduit 충돌을 해결하는 방법

나는 현재 컴퓨터에 잘 설치되어 있으며 아무런 문제없이 거기에 cabal install 수 있습니다.

나는 신선한 우분투 VM 인 (하지만 다른 컴퓨터에에 문제로 실행하는 것 -. 예를 들어, 이전에 설치된 어떤 음모 패키지 내 설치에 대해 아무것도 변경되지

주 (예 : 음모 파일) 정확히 동일

이 내가 점점 계속 오류이다.

음모 :.. 0.1 ==는 ZLIB - 바인딩을 필요로 ZLIB가-열거-0.2.2 구성 * 수 없습니다
zlib-bindings == 0.1에 대한 종속성은 * 패키지 :
zlib- 결합 -0.1.0 및 zlib- 결합 -1.0.0.1. 그러나 그들 중 누구도 사용할 수 없습니다. ZLIB-도관-0.2.0.1가> = 0.0.3 & & < 0.1
ZLIB - 바인딩 - 0.1.0 제외 하였다 ZLIB - 바인딩을 요구하기 때문에
-0.1.0 ZLIB 바인딩에 제외 된 ZLIB - 바인딩 - 0.0 때문이다. 3.2가 선택되었습니다
zlib-bindings-0.1.0은 최상위 종속성 때문에 제외되었습니다. zlib-conduit-0.2.0.1에는 zlib이 필요하기 때문에 zlib-bindings == 0.0.3.2
zlib-bindings-0.1.0.1이 제외되었습니다. 0.0.3.2가 선택 되었기 때문에 제외되었습니다.
ZLIB - 바인딩 - 0.1.0.1는 아니, 때문에 나는이 문제를 해결하지만,이 같은 문제로 계속 실행하는 방법의 모든 종류의 시도 0.0.3.2

최상위 종속성 ZLIB - 바인딩 ==에서 제외되었다 내가 취하는 길은 중요하다.

내 생각 엔이 패키지의 버전이이 시점에서 충돌하고 있다는 것입니다.

해결 될 때까지 어떻게 해결할 수 있습니까?

답변

3

이것은 종좌 의존성 지옥의 대표적인 예입니다. 이론적으로 결함은 zlib-enum으로, 이는 주 버전 범프를 zlib-bindings으로 반영하기 위해 주 버전 범프를 가져야했기 때문에 발생합니다. 하지만 문제는 카발의 의존성 분석기입니다. 새로운 것이 곧 준비 될 것입니다.

한편 zlib-enum에 따라 < = 0.2.1이 작동해야합니다.

@ ehird의 대답도 도움이 될 것입니다. 그러나 문제를 완전히 해결하지는 못합니다.

+0

감사합니다. 기회가 생길 때마다이 솔루션을 사용해 보겠습니다. 새 의존성 분석기를 사용할 수있는 시점에 관한 어떤 말입니까? –

+0

@ThorstenLorenz : 일부 정보 (원래 코멘트로 추가했지만 추가 할 시간이 오래 걸렸습니다)로 답변을 확장했습니다. – ehird

+0

Micheal에게 감사의 말을 전하며, 귀하의 제안에 따라 Cabal 파일을 업데이트 한 후'yesod devel'을 다시 빌드하고 실행할 수있었습니다. –

3

당신은 새로운 Yesod Platform (Hackage page)를 설치하려고 할 수 있습니다 :

cabal install yesod-platform 

그것은 특정 Yesod 버전의이 같은 충돌을 버전 않도록 설계 모든 종속성에 의존하는 메타 패키지입니다.

마이클 언급 된 모듈 종속성 해결사가있는 개발중인 버전의 cabal-install을 사용해 볼 수도 있습니다. darcs get --lazy http://darcs.haskell.org/cabal/ 인 경우 bootstrap.shcabal/cabal-install에서 실행할 수 있어야합니다 (단, ~/.cabal~/.ghc을 먼저 지워야합니다). 그래도 --solver=modularcabal으로 전달하여 명시 적으로 모듈러 해석기를 요청해야합니다.

비록 개발 버전이지만 실제로는 꽤 안정적입니다. Hackage의 버전이 컴파일되지 않기 때문에 GHC 7.4.1 (나 포함)의 많은 사람들이 그것을 사용합니다. 지금까지 어떤 문제도 없었습니다.

이것은 Linux 용입니다. 관련 디렉토리가 OS X에서 ~/Library/Haskell이라고 생각합니다. 특히 쉘 스크립트가 실행되지 않을 것이므로 Windows에서 무엇을해야할지 모릅니다.

+0

대단히 감사합니다. 나는 Micheal의 제안과 함께 지금 이것을 이해할 수 있어야한다고 확신한다. –

관련 문제