2014-10-12 2 views
2

cabal sandbox init을 실행했고 cabal install -j some-package을 실행했고 some-package의 종속성 중 하나에서 빌드가 실패했다고 가정합니다. 이 문제를 해결하는 한 가지 방법은 실패한 저자에게 알리고 새 버전을 출시 할 때까지 기다리는 것이지만 프로세스가 너무 느릴 수 있습니다. 실패의 이유가 명백 할 때 (종종 그렇습니다) 텍스트 편집기를 시작하고 직접 수정하려고합니다.Haskell Cabal : Hackage에서 로컬로 깨진 패키지를 수정했습니다.

그러나 .cabal-sandbox 캐시 디렉토리의 오류 로그에서 파일 이름으로 find(1)을 실행하면 .hs 개의 파일을 찾을 수 없습니다. GHC가 성공적으로 또는 성공적으로 실행을 완료하면 cabal 명령이 전체 소스 디렉토리를 제거합니까? cabal 님의 작업 실행에 어떻게 침입 할 수 있습니까? 또는 Hackage의 소프트웨어 패키지를 직접 수정한다는 본래의 목표를 달성하기위한 표준화 된 방법이 있습니까?

답변

1

cabal get <package>으로 패키지 소스를 다운로드 한 다음 수정하고 cabal install <package-dir>으로 샌드 박스에 설치할 수 있습니다.

예.

$ cabal get split 
Unpacking to split-0.2.2/ 
$ vim split-0.2.2/split.cabal 
$ cabal install ./split-0.2.2 
+0

위대한, 시도해 볼게! 'cabal '이 로컬 파일 경로를 받아 들일지 몰랐습니다. – nodakai

+1

처음에는 제대로 작동하지 않는다고 생각했지만 패키지 이름의 끝에있는'/'문자는'cabal '이 Hackage가 아니라 로컬 디렉토리임을 인식하는 데 필수적이었습니다. – nodakai

+0

오, 맞습니다. 답변을 업데이트하겠습니다. –

관련 문제