2017-09-17 6 views
1

stack 기반 프로젝트에서 katip 라이브러리 버전 0.5.0.0을 사용하고 싶습니다. (프로젝트는 here입니다.)Stackage Resolver보다 최신 버전 라이브러리를 사용하는 방법

불행히도 stack.yaml 파일에는 확인자 lts-6.4이 있으며 다운로드 대상은 katip-0.2.0.0입니다.

katip-0.5.0.0을 사용하는 올바른 방법은 무엇입니까?

내가 katip >= 0.5 && <0.6를 사용하여 내 cabal 파일을 수정 시도,하지만 난 그렇게했을 때, 나는이 오류를 가지고 :

1) 음모를 수정 : 당신은 두 가지 일을 할 필요가

In the dependencies for servant-persistent-0.2.0.0: katip-0.2.0.0 must match >=0.5 && <0.6 (latest applicable is 0.5.0.1)

+0

왜'lts-6.4'를 사용합니까? 스택으로 당신은 다음을 선택해야합니다 : 오래된 것 전부 또는 새로운 것 ... 거의 항상 preferrable 인 후자와 함께. 이전 라이브러리 의존성과 새로운 라이브러리 의존성을 혼합하고 싶다면 명시 적으로'extra-deps'를 사용해야 할 것입니다.하지만 그 시점에서 좋은 Old Cabal-install을 사용하는 것이 더 쉽습니다. 또는 오히려, [좋은 _ 새로운 _ Cabal-install] (http://blog.ezyang.com/2016/05/announcing-cabal-new-build-nix-style-local-builds/) ... – leftaroundabout

답변

3

을 katib의 최신 버전을 허용하는 제약 조건 :

katip >= 0.5 && < 0.6 

2) 허용하도록 stack.yaml 파일을 수정하십시오.

extra-deps: 
- katip-0.5.0.0 

강력한 이유가 없다면 - 항상 새로운 스태킹 리졸버를 사용하는 것이 좋습니다. 최신 항목은 lts-9.5입니다.

+0

Sibi, 고맙습니다. 덧글에 대한. 더 최근의 해석자를 사용하지 않는 이유는 더 많은 오류가 발생한다는 것입니다. '서번트 종속성 -0.2.0.0에 대한 종속성에서 : base-4.9.1.0은> = 4.7 && <4.9와 일치해야합니다. 최신 해당 사항은 4.8.2.0입니다. 서번트 -011은> = 0.7 && <0.8 (최신 적용은 0.7.1)과 일치해야합니다. 서번트 -Js-0.9.3은> 0.7 && <0.8와 일치해야합니다 (최신 적용은 0.7.1입니다.) servant-server-0.11은> = 0.7 && <0.8 (최신 적용은 0.7.1)이어야합니다. ' –

+1

@StevenL. Cabal 패키지와 같은 소리에는 일치하지 않는 제약 조건이 있으므로 사용하려는 경우 수정해야합니다. 리졸버 내의 패키지는 모두 서로 호환됩니다. 제약 조건을 무시할 때 여전히 빌드되는지 확인하는 한 가지 방법은 본질적으로 제약 조건을 모두 무시하는'--allow-newer'를 전달하는 것입니다. – mgsloan