2017-01-29 32 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 

私はカイロのインストールに同じエラーを取得保管。私はUbuntuの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このスーパーユーザーまたはUbuntuは、このエラーということで、ここでいうより:

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

んが、それ自体が秘密結社の内部で、何とか1つのレベル深いモジュール内にあるように、このことを期待Haskellのパッケージコードでファンキーな何かがあります示唆しているようです-*:、 右?それをクリアしていない

その他の参考文献:

+1

ます(スタック--git --source-only'アップグレード '経由)スタックの開発版をインストールしてみてくださいことはできますか?最新バージョンのCabalには、新しいカスタムセットアップのサポートがあります。また、 'stack setup --upgrade-cabal'は、最新のCabalライブラリを提供するのに役立ちますが、おそらく必要ではありません。 –

+0

ありがとう、@MichaelSnoyman。新しいカスタムセットアップの資料のドキュメントはありますか?グーグルでは私にgithubのバグレポートが届きました。また、 'stack upgrade --git --source-only'を実行した後の最初のエラーは' /tmp/stack-upgrade25291/stack/stack.cabal:Cabal file warning in Unknown section type:custom-setup'です。うまくいきません。 – Mittenchops

+0

@MichaelSnoyman、私はスタック--git --source-only'をアップグレードし、まだカイロ、threadscope、およびgtk2hs-ビルドツールをインストールするには、同じエラーを取得し 'でインストール。 – Mittenchops

答えて

1

cairoを正常にコンパイルするには、新しいcustom-setup feature in Cabal 1.24をサポートする必要があります。公式にリリースされたStackバージョンはこれをまだサポートしていませんが、masterでサポートされています。それをインストールするには:

  • 実行stack upgrade --git --source-only
  • この後stack --versionwhich stack

を実行し、コピー先のディレクトリ(通常は$HOME/.local/bin)が余分に確かにあなたのPATH

  • であることを確認してください、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 
    

    が、私はアーチのLinuxを使用しています。

    +0

    '$ stack setup --upgrade-cabal 現在インストールされているCabalは1.24.2.0、最新は1.24.2.0です。私はCabalをアップグレードしていません。 – Mittenchops

    +0

    それはうまくいかず、うまくいきませんでした。 – wizzup

    関連する問題