2014-09-28 7 views
4

응용 프로그램에서 사용하는 캐롤로 빌드 된 라이브러리를 로컬로 체크 아웃하는 경우. hackage가 아닌 지역 도서관을 대상으로 신청서를 작성하고 싶습니다만 어떻게해야할지 모르겠습니다. 이것은 내가 할 수 있어야하는 것 같아요, 나는 단지 방법을 해결할 수없는 것 같습니다.가 중요하거나 일을 복잡하게 경우hackage가 아닌 종속성의 사용자 지정 버전 (예 : github에서 계산)을 사용하여 샌드 박스가 지정된 프로젝트를 빌드하는 방법

, 응용 프로그램이 응용 프로그램의 루트 디렉토리에있는 cabal-sandbox-config 파일과 음모 샌드 박스에있는 샌드 박스

. 내가 Yesod 응용 프로그램을 짓고 있어요

달성하기 위해 노력하고있어 나는 의존성 (셰익스피어) 중 하나의 동작을 조정할 원하는 것은

. 내 비틀어 진 버전에 대한 내 응용 프로그램을 구축하고 싶습니다.

답변

9

cabal sandbox add-source을 사용하십시오.이 사용 사례를 위해 특별히 설계되었습니다.

예 : 보너스로

$ git clone https://github.com/SomeUser/SomeDependency 
$ cd /path/to/my-project 
$ cabal sandbox add-source /path/to/SomeDependency 
$ cabal build 

, 나중에 SomeDependency를 업데이트하고 my-project, cabal 그 통지 및 SomeDependency를 다시 설치합니다 다시 시도하십시오.

1

옵션 1 : 당신은 그냥 프로젝트를 복제 한 다음 음모가 복제 된 디렉토리에 설치 실행할 수 있습니다

. git clone https://github.com/yesodweb/shakespeare.git

이렇게하면 디렉토리에 .cabal 파일이 포함됩니다.

그래서 디렉토리를 입력하고 cabal install을 실행하십시오. 그러면 shakespeare이 설치됩니다. 이제 프로젝트 설치를 계속하십시오.

중요한 점 : 당신이 당신의 자신의 프로젝트를 컴파일 할 때 ghc 또는 cabal 자체에 (기본적으로 hackage에서) 셰익스피어 의존성을 설치하려고하지 않도록

는 먼저 셰익스피어 자신을 설치해야합니다.

옵션 2 :

  • hackage-server
  • 가 haskell-을 통해 해당 지역의 hackage의 우선 순위를 지역 hackage에
  • 을 편집 음모의 설정을 셰익스피어 (당신의 불통 버전)의 사본을 업로드 설치 해커

원격 REPO : hackage.haskell.org : http://hackage.haskell.org/packages/archive

원격 REPO : local.hackage : http://local.hackage/packages/archive

여러 패키지를 조정하는 거라면이, 이해 수 있지만 다른 것들 중에서도, 수정 된 버전에 대한 업데이트를 추적하는 것이 악몽이 될 것이기 때문에 아마도이 작업을 수행하지 않는 것이 좋습니다.