2016-12-08 5 views
1

글쎄 내 앱 이름이 hackage에 업로드 된 패키지 중 하나와 동일하므로 stack solver --resolver lts 7.12을 사용하여 추가 종속성을 해결하려고 할 때 오류 다음 .cabal 파일extra-deps와 함께 스택 솔버를 사용하는 중 Hackage 이름 충돌

$ stack solver --resolver lts-7.12 
Using configuration file: stack.yaml 
Using cabal packages: 
- html-parse.cabal 

Using resolver: lts-7.12 
Using compiler: ghc-8.0.1 
Asking cabal to calculate a build plan... 
Trying with packages from lts-7.12 as hard constraints... 
Attempt failed. 

>>>> Cabal errors begin 
cabal.exe: Could not resolve dependencies: 
next goal: html-parse (user goal) 
rejecting: html-parse-0.2.0.0, 0.1.0.0 (global constraint requires ==0.0.0.3) 
trying: html-parse-0.0.0.3 
next goal: hunit (dependency of html-parse-0.0.0.3) 
Dependency tree exhaustively searched. 
<<<< Cabal errors end 

Could not parse cabal-install errors: 

>>>> Cabal errors begin 
cabal.exe: Could not resolve dependencies: 
next goal: html-parse (user goal) 
rejecting: html-parse-0.2.0.0, 0.1.0.0 (global constraint requires ==0.0.0.3) 
trying: html-parse-0.0.0.3 
next goal: hunit (dependency of html-parse-0.0.0.3) 
Dependency tree exhaustively searched. 
<<<< Cabal errors end 

내 애플/패키지 이름은 html-parse이며, 현재 버전은 0.0.0.3입니다. 내 자신의 패키지가 ==0.0.0.3이라는 제약 조건을 가진 종속물로 나열된 것처럼 보이지만 동일한 이름이지만 버전이 다른 hackage에 대한 또 다른 pacakge가 있습니다.

내 앱의 이름을 바꾸지 않고도이 문제를 어떻게 해결할 수 있습니까?

Package names and versions

All packages have a name, e.g. “HUnit”. Package names are assumed to be unique. Cabal package names can use letters, numbers and hyphens, but not spaces. The namespace for Cabal packages is flat, not hierarchical.

따라서, 음모 라이브러리 패키지 이름 충돌을 처리하는 기능이없고, 어느 쪽도 스택을 음모 설치하지 않는 다음 Cabal user guide (강조 광산을) 인용

답변

0

. 그렇기 때문에 패키지 이름을 변경해야합니다.

추신 : 저는 프로젝트가 실제로 어떻게 작동 될지 모르기 때문에 동등한 패키지를 제외하는 private Hackage을 사용하도록 프로젝트를 설정할 가능성을 심각하게 고려하지 않았습니다. 그것은 가치가있다.

+0

답변과 수정 해 주셔서 감사합니다. 나는 단지 핵심 애플 리케이션이 패키지로 간주되지 않을 것이라고 생각했지만 libs 등으로 멀티 패키지 프로젝트를 빌드하기 위해서는 모든 것을 cabal 측면에서 패키지로해야한다. – DuckOfDoom

+0

내 질문에 감사합니다. 감사합니다. – DuckOfDoom