2015-01-27 1 views
1

작성하려고하는 패키지를 작성했습니다. 이유는 노트북에 설치하고 싶지 않기 때문입니다. 모든 종속성을 다운로드하여 다른 컴퓨터에 설치하려고합니다. 어떻게해야합니까? 내가 뛰면현재 패키지에 대한 Cabal 가져 오기 종속성

$ cd my-package 
$ cabal fetch . 

cabal는 no packages requested를 말한다. 내가

$ cabal fetch my-package.cabal 

을 할 경우는 음모 파일을 읽을 않지만, 그것은 실제로 hackage에 존재하지 않는 패키지를 다운로드하려고하지만 내 샌드 박스에 있습니다.

+0

컴퓨터 또는 다른 컴퓨터에서 어디에서 컴파일 작업을 수행 하시겠습니까? – ErikR

답변

2

당신이 시도 할 수 :

cabal fetch `cabal install --dependencies-only --dry-run | sed 1,2d` 

당신은 이미 설치되어있는 종속성을 생략하지 않도록 새로운 샌드 박스에서 작업을 수행 할 수 있습니다.

* nix 도구가 훌륭하지 않습니까?

+0

이것은 아주 가깝지만'sed' 명령을 조정해야했습니다. 고맙습니다! – nomen

+1

무엇을 조정 하시겠습니까? –

+0

@IvanPerez'cabal install --dependencies-only --dry-run'을 실행하고 출력을 눈으로 확인하십시오. 대부분의 줄은'my-great-package-3.2.0.0'과 같은 패키지 이름과 버전 번호가 될 것이지만 분명히 그 패턴에 맞지 않는 몇 줄이있을 것입니다. 당신이 편안하게 사용하는 도구를 사용하여 그 선들을 제거하십시오. –