2016-10-13 6 views
3

Windows 10에 clanki이라는 프로그램을 설치하려고합니다. 설치 문서에 'cabal install clanki'를 사용하라고 나와 있습니다. 나는 cabal을 다운로드 한 다음 ghc를 다운로드했습니다. 이제 패키지 base의 버전 문제가 발생합니다. 기장이있는 기지를 다운 그레이드하는 방법은 무엇입니까?

$ cabal install clanki 
Resolving dependencies... 
cabal.exe: Could not resolve dependencies: 
trying: clanki-1.2.7 (user goal) 
next goal: base (dependency of clanki-1.2.7) 
rejecting: base-4.9.0.0/installed-4.9... (conflict: clanki => base<=4.9.0) 
rejecting: base-4.9.0.0, base-4.8.2.0, base-4.8.1.0, base-4.8.0.0, 
base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, base-4.6.0.1, base-4.6.0.0, 
base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, base-4.4.0.0, base-4.3.1.0, 
base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, base-4.2.0.0, base-4.1.0.0, 
base-4.0.0.0, base-3.0.3.2, base-3.0.3.1 (constraint from non-upgradeable 
package requires installed instance) 
Dependency tree exhaustively searched. 

그래서 clanki는 (스택 음모보다 더 명확하게 말한다)이 지난 4.9로 기반을 필요로하고, 나는 다음 4.8.2.0에 기반을 다운 그레이드하고 싶습니다. ghc-pkg unregister base을 시도하면 허용되지 않습니다. 심지어 --force로 : 내가 언급 한 바와 같이

$ ghc-pkg unregister base --force 
unregistering would break the following packages: xhtml-3000.2.1 Win32-2.3.1.1 transformers-0.5.2.0 time-1.6.0.1 template-haskell-2.11.0.0 process-1.4.2.0 pretty-1.1.3.3 hpc-0.6.0.3 hoopl-3.10.2.1 haskeline-0.7.2.3 ghci-8.0.1 ghc-boot-th-8.0.1 ghc-boot-8.0.1 ghc-8.0.1 filepath-1.4.1.0 directory-1.2.6.2 deepseq-1.4.2.0 containers-0.5.7.1 Cabal-1.24.0.0 bytestring-0.10.8.1 binary-0.8.3.0 array-0.5.1.1 (ignoring) 

, 나는 스택도했지만, 결국 그것은 또한베이스의 잘못된 버전으로 내려 온다. 이 패키지를 어떻게 다운 그레이드 할 수 있습니까?

답변

5

수 없습니다. base은 GHC 설치에 고정되어 있습니다. 다른 버전을 구하는 유일한 방법은 구형 컴파일러 (예 : GHC-7.10)를 설치하는 것입니다. stack이 자동으로 그렇게 하겠지만, 이것이 최선의 해결책인지는 확신 할 수 없습니다.

은 실제로 GHC-8.0에서 작동합니다. 실제로 제약 조건 base <= 4.9.0은이를 나타냅니다. 이 제약 조건은 사전 첫 번째 하위 버전 만 허용하기 때문에 많은 의미를 갖지 않습니다. 아마도 실제로는 base < 4.10이어야합니다.

github에서 소스를 다운로드하는 것이 가장 좋습니다. 실제로 base에는 상한이 없으며 로컬 폴더에서 cabal install으로 설치하십시오. 그게 효과가 있다면 저자에게 Hackage에 대한 경계를 풀어 주도록 알리십시오. 이 GHC-8.0에서 컴파일되지 않는 경우

다시 가장 좋은 점은 소스를 편집하여 일을하고 풀 요청을 제출 만든다 하는 것입니다.

그런 다음 이전 GHC로 패키지를 설치하기 위해 스택을 사용하고 싶습니다. 이렇게하려면 소스 코드 base < 4.9 제약 (github 코드에 삽입해야 함)로 설정하고 stack setup, stack initstack install을 실행하십시오.

+1

'와 제약 조건을 무시 대해 음모를 설치하는 방법 clanki --allow-새로운 base' : 이러한 경우, 또는 당신이 굵은 느낌을 간단하게, 당신은 적절한 옵션과 의존성에 상한을 무시 cabal을 지시 할 수 있습니다 –

+1

@ JoachimBreitner : 실제로 그 옵션을 알지는 못했지만 그게 좋습니다! 왜 대답하지 그래? – leftaroundabout

+0

예, GHC-7.10.3이 작동했습니다. 감사! – garci560

7

@ leftroundabout의 답변에 따르면이 패키지의 base의 상한은 가짜입니다.

cabal install clanki --allow-newer=base 
관련 문제