2014-12-17 4 views
2

우분투의 새로운 사본에 GHC를 설치하려고합니다. 궁금합니다. 코어 라이브러리 (예 : text, unordered-containers)에 프로파일 링 라이브러리가 설치되도록하려면 어떻게해야합니까?GHC 7.8을 설치할 때 프로파일 링 라이브러리가 설치되도록 보장 할 수 있습니까?

cabal의 .config 파일에서 프로파일 링 옵션을 변경하고 있음을 알고 있지만 이것이 프로파일 링 라이브러리가 cabal 설정 후에 설치 한 패키지에만 설치된다는 것을 알고 있습니다 (아래 업데이트의 기울임 꼴 텍스트 참조) .

(어젯밤에 설치된 GHC 패키지의 프로파일 링 라이브러리를 소급하여 설치 한 결과 부득이하게 우분투 vbox를 날려 버렸습니다. 이로 인해 기존 패키지가 작동하지 않아 GHC를 제거하려고 시도하게되었습니다. ! ... 터져 죽자)

UPDATE : 내가 GHC를 설치하고 난 cabal를 설치하려고 해요 시점에서 지금 생각했습니다. 나는 "chicken-and-an-egg"딜레마에 직면했다는 나의 의구심을 확인했다. 초기 cabal 설정 파일 (프로파일 링 옵션을 True로 설정할 수 있음)을 얻으려면 Cabal을 설치해야한다. . 그러나 cabal을 설치하면 cabal 구성 파일을 변경하기 전에 핵심 패키지 (예 : 텍스트, 정렬되지 않은 컨테이너)가 설치됩니다.

해결했다 (! 감사), 나는 bootstrap.sh 스크립트 파일을 수정 몇 만든 다니엘 바그너의 제안 사항에 따라 (나는 불행하게도 나의 오래된 음모를하지 않았거나 내가 수행 한 것이 그의 다른 제안). 앞으로의 독자들을위한 참고 자료로서 bootstrap.sh 파일의 시작 부분은 다음과 같습니다 (변경 후).

#VERBOSE 
DEFAULT_CONFIGURE_OPTS="--enable-library-profiling --enable-shared" 
EXTRA_CONFIGURE_OPTS=${EXTRA_CONFIGURE_OPTS-$DEFAULT_CONFIGURE_OPTS} 
#EXTRA_CONFIGURE_OPTS 
#EXTRA_BUILD_OPTS 
#EXTRA_INSTALL_OPTS 

답변

4

선호하는 솔루션은 패키지 관리자를 통해 cabal-install을 설치하는 것입니다. 패키지 관리자에 이전 버전의 cabal-install이있는 경우 이전 버전을 사용하여 config를 사용하여 새 버전을 설치하거나 cabal install cabal-install --enable-library-profiling을 통해 명령 줄에 직접 프로파일 링을 지정할 수 있습니다.

bootstrap.sh 스크립트를 통해 cabal-install을 설치하려면 대체로 제공되는 환경 변수를 사용하십시오. 4 개가 있으며, bootstrap.sh 상단에 표기됩니다. 해당 패키지는 EXTRA_CONFIGURE_OPTS이고 각 패키지의 Setup 명령의 내용은 configure 단계로 전달됩니다. 그래서 이것과 같은 무언가가 트릭을해야합니다 (테스트하지는 않았지만).

EXTRA_CONFIGURE_OPTS=--enable-library-profiling ./bootstrap.sh