2017-01-29 7 views
0

스택을 통해 스레드 스코프를 설치하기 시작했습니다 (캐벌이 아닌 OK? https://wiki.haskell.org/ThreadScope). threadscope에는 카이로가 필요합니다.스레드 스코프 용 카이로 설치 스택

$ stack install cairo 
cairo-0.13.3.1: configure 

-- While building package cairo-0.13.3.1 using: 
     /home/username/.stack/programs/x86_64-linux/ghc-8.0.1/bin/ghc --make -odir /tmp/stack13291/cairo-0.13.3.1/.stack-work/dist/x86_64-linux/Cabal-1.24.2.0/setup -hidir /tmp/stack13291/cairo-0.13.3.1/.stack-work/dist/x86_64-linux/Cabal-1.24.2.0/setup -i -i. -package=Cabal-1.24.2.0 -clear-package-db -global-package-db -package-db=/home/username/.stack/snapshots/x86_64-linux/lts-7.10/8.0.1/pkgdb /tmp/stack13291/cairo-0.13.3.1/Setup.hs /home/username/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs -main-is StackSetupShim.mainOverride -o /tmp/stack13291/cairo-0.13.3.1/.stack-work/dist/x86_64-linux/Cabal-1.24.2.0/setup/setup -threaded 
    Process exited with code: ExitFailure 1 
    Logs have been written to: /home/username/.stack/global-project/.stack-work/logs/cairo-0.13.3.1.log 

    [1 of 2] Compiling Main    (/tmp/stack13291/cairo-0.13.3.1/Setup.hs, /tmp/stack13291/cairo-0.13.3.1/.stack-work/dist/x86_64-linux/Cabal-1.24.2.0/setup/Main.o) 

    /tmp/stack13291/cairo-0.13.3.1/Setup.hs:8:29: error: 
     • Couldn't match expected type ‘Distribution.Simple.UserHooks.UserHooks’ 
         with actual type ‘Cabal-1.24.1.0:Distribution.Simple.UserHooks.UserHooks’ 
      NB: ‘Cabal-1.24.1.0:Distribution.Simple.UserHooks.UserHooks’ 
       is defined in ‘Distribution.Simple.UserHooks’ 
        in package ‘Cabal-1.24.1.0’ 
       ‘Distribution.Simple.UserHooks.UserHooks’ 
       is defined in ‘Distribution.Simple.UserHooks’ 
        in package ‘Cabal-1.24.2.0’ 
     • In the first argument of ‘defaultMainWithHooks’, namely 
      ‘gtk2hsUserHooks’ 
      In the expression: defaultMainWithHooks gtk2hsUserHooks 
      In an equation for ‘main’: 
       main = defaultMainWithHooks gtk2hsUserHooks 

그리고 더 쫓고, 나는 GTK 빌드 도구를 설치하려고 :

$ stack install gtk2hs-buildtools 
Copying from /home/username/.stack/snapshots/x86_64-linux/lts-7.10/8.0.1/bin/gtk2hsC2hs to /home/username/.local/bin/gtk2hsC2hs 
Copying from /home/username/.stack/snapshots/x86_64-linux/lts-7.10/8.0.1/bin/gtk2hsHookGenerator to /home/username/.local/bin/gtk2hsHookGenerator 
Copying from /home/username/.stack/snapshots/x86_64-linux/lts-7.10/8.0.1/bin/gtk2hsTypeGen to /home/username/.local/bin/gtk2hsTypeGen 

Copied executables to /home/username/.local/bin: 
- gtk2hsC2hs 
- gtk2hsHookGenerator 
- gtk2hsTypeGen 

나는 카이로 설치에 대해 동일한 오류가 있었다. 우분투 14.04를 실행하고있어 libcairo2-dev가 설치되어 않습니다

$ stack install threadscope 
glib-0.13.4.1: configure 
cairo-0.13.3.1: configure 
Progress: 2/6 
-- While building package cairo-0.13.3.1 using: 
     /home/username/.stack/programs/x86_64-linux/ghc-8.0.1/bin/ghc --make -odir /tmp/stack20456/cairo-0.13.3.1/.stack-work/dist/x86_64-linux/Cabal-1.24.2.0/setup -hidir /tmp/stack20456/cairo-0.13.3.1/.stack-work/dist/x86_64-linux/Cabal-1.24.2.0/setup -i -i. -package=Cabal-1.24.2.0 -clear-package-db -global-package-db -package-db=/home/username/.stack/snapshots/x86_64-linux/lts-7.10/8.0.1/pkgdb /tmp/stack20456/cairo-0.13.3.1/Setup.hs /home/username/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs -main-is StackSetupShim.mainOverride -o /tmp/stack20456/cairo-0.13.3.1/.stack-work/dist/x86_64-linux/Cabal-1.24.2.0/setup/setup -threaded 
    Process exited with code: ExitFailure 1 

스택 버전 :

$ stack --version 
Version 1.3.2, Git revision 3f675146590da4f3edf768b89355f798229da2a5 (4395 commits) x86_64 hpack-0.15.0 

음모 버전 :

$ stack exec cabal -- --version 
cabal-install version 1.24.0.1 
compiled using version 1.24.1.0 of the Cabal library 

다른 버전 :

$ sudo apt-get install libgtk2.0-dev libpango1.0-dev libglib2.0-dev libcairo2-dev libghc-gtk-dev 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
libcairo2-dev is already the newest version. 
libglib2.0-dev is already the newest version. 
libglib2.0-dev set to manually installed. 
libgtk2.0-dev is already the newest version. 
libgtk2.0-dev set to manually installed. 
libpango1.0-dev is already the newest version. 
libpango1.0-dev set to manually installed. 
libghc-gtk-dev is already the newest version. 
0 upgraded, 0 newly installed, 0 to remove 

이유는 내가 rai SE이 수퍼 유저 또는 우분투이 오류가 있다는 것입니다 여기보다는 :

• Couldn't match expected type ‘Distribution.Simple.UserHooks.UserHooks’ 
        with actual type ‘Cabal-1.24.1.0:Distribution.Simple.UserHooks.UserHooks’ 

합니까 자체가 음모 안에 어떻게 든 한 단계 더 깊이있는 모듈 내에서 수 있도록이 기대 하스켈 패키지 코드 펑키 거기에 뭔가 시사하는 것 -*:, 권리? 그것을 정리하지 않은

기타 참조 :

+1

(스택 업그레이드 --git --source-only'를 통해) 개발 버전의 스택을 설치해 볼 수 있습니까? 새로운 버전의 Cabal에 새로운'custom-setup' 물건에 대한 지원이 있습니다. 또한,'stack setup --upgrade-cabal'은 최신 Cabal 라이브러리를 제공하는 데 도움이 될 수 있지만, 아마도 필요하지는 않습니다. –

+0

고마워요, @MichaelSnoyman. 새로운 맞춤 설정 항목에 대한 설명서가 있습니까? 인터넷 검색은 github 버그 보고서만을 제공했습니다. 또한,'stack upgrade --git --source-only'를 실행 한 후 첫 번째 오류는 /tmp/stackupupgrade25291/stack/stack.cabal에있는 Cabal 파일 경고 : 알 수없는 섹션 유형을 무시합니다 : custom-setup'입니다. 좋은 징조는 아니다. – Mittenchops

+0

@MichaelSnoyman,'stack upgrade --git --source-only'와 함께 설치했지만 카이로, threadscope 및 gtk2hs-buildtools 설치시에도 동일한 오류가 발생합니다. – Mittenchops

답변

1

cairo을 성공적으로 컴파일하려면 새로운 custom-setup feature in Cabal 1.24을 지원해야합니다. 공식적으로 출시 된 Stack 버전은 아직 지원하지 않지만 master에서 지원됩니다.순서에 설치할 :

  • 실행 stack upgrade --git --source-only
  • 대상 디렉토리 (일반적으로 $HOME/.local/bin가)에 있는지 확인하여 PATH
  • 추가, 확인 이후 stack --versionwhich stack

를 실행하려면 , stack build cairo가 작동해야합니다.

1

나는

recently 당신이

stack setup --upgrade-cabal

을 시도하고 문제를 해결하는 경우 볼 수 이것이 내가이 같은 문제라고 생각합니다.

== 편집 : ==

그러나, 첫 번째 질문에 대답하기 위해, 나는 다음과 같은 명령을 사용하여 스택을 통해 threadscope를 설치할 수

$ stack --resolver=nightly install threadscope 
Selected resolver: nightly-2017-01-31 
Copying from /home/wizzup/.stack/global-project/.stack-work/install/x86_64-linux-ncurses6/nightly-2017-01-31/8.0.2/bin/threadscope to /home/wizzup/.local/bin/threadscope 

Copied executables to /home/wizzup/.local/bin/: 
- threadscope 

하지만 아치 리눅스를 사용하고 있습니다.

+0

'$ stack setup --upgrade-cabal 현재 설치된 Cabal은 1.24.2.0이며 최신은 1.24.2.0입니다. 나는 Cabal을 업그레이드하지 않을거야. ' – Mittenchops

+0

너무 좋지 않아. – wizzup