2017-04-03 5 views
0

스택 또는 캐벌을 사용하지 않고 배포되는 패키지에는 대개 묵시적인 종속성이 있습니다. 이것은 때때로 ghcs를 ghcs 글로벌 패키지 데이터베이스에 설치하지 않으면 해당 패키지에서 ghc를 직접 실행할 수 없음을 의미합니다.ghc를 ghc로 대체하여 스택 ghc 사용

내가 초기화 파일 내 쉘에 다음과 같은 정의이를 위해 ghc를 대체 stack ghc를 사용하고 싶습니다 :

export PATH="`stack path --compiler-bin`:$PATH" 

지금 명령 ghc이 GHC 스택의를 사용합니다 - 그것은 하지 수행을 그러나 stack ghc과 동일하게 수행하십시오.

$ ghc -v 
Glasgow Haskell Compiler, Version 8.0.1, stage 2 booted by GHC version 7.10.3 
Using binary package database: ~/.stack/programs/x86_64-linux/ghc-nopie-8.0.1/lib/ghc-8.0.1/package.conf.d/package.cache 
... 
$ stack ghc -- -v 
Glasgow Haskell Compiler, Version 8.0.1, stage 2 booted by GHC version 7.10.3 
Using binary package database: ~/.stack/programs/x86_64-linux/ghc-nopie-8.0.1/lib/ghc-8.0.1/package.conf.d/package.cache 
Using binary package database: ~/.stack/snapshots/x86_64-linux-nopie/lts-7.9/8.0.1/pkgdb/package.cache 
Using binary package database: ~/.stack/global-project/.stack-work/install/x86_64-linux-nopie/lts-7.9/8.0.1/pkgdb/package.cache 
... 

사람이 ghc을 대체 stack ghc을 사용하여 달성하는 방법에 대한 지침이 있습니까 하나를 들어, 다음과 같은 명령으로 볼 수있는 바와 같이 "글로벌 프로젝트"를 "스냅 샷"및 패키지 데이터베이스를로드하지 않습니다 .

내가 현재 가지고있는 유스 케이스는 ghc을 참조하는 make- 파일을 받았지만 내 컴퓨터에는이 명령이 없습니다.

답변

1

stack exec 내에서 makefile을 실행하면 GHC_PACKAGE_PATH 환경 변수가 설정됩니다. 또한 적절하게 PATH까지 확장됩니다.

또는

, 당신이 할 수있는 쉘이 세트를 가질

export GHC_PACKAGE_PATH=`stack path --ghc-package-path`