2017-01-29 5 views
0

J'ai commencé à installer le fil de trame à travers la pile (plutôt que cabal, est-ce que c'est OK? https://wiki.haskell.org/ThreadScope). threadscope nécessite cairo.Pose d'un cairo pour le filetage

$ 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 

Et chasser plus loin, j'ai essayé d'installer des outils de construction 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 

je continué à obtenir la même erreur pour l'installation du caire. Je suis en Ubuntu 14.04 et n'ont libcairo2-dev installé:

$ 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 

version Stack:

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

Version Cabal:

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

Autres versions:

$ 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 

Le raison pour laquelle je rai se présente ici au lieu de super-utilisateur ou ubuntu est que cette erreur:

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

ne semble suggérer qu'il ya quelque chose funky avec le code de package Haskell s'attendent que cela soit dans un module qui est en quelque sorte un niveau plus profond, à l'intérieur de la cabale -*:, droite?

Autres références qui ne sont pas compensés vers le haut:

+1

Pouvez-vous essayer d'installer la version de développement de Stack (via 'stack upgrade --git --source-only')? Il y a un support pour les nouvelles choses 'custom-setup' dans Cabal dans la nouvelle version. De même, 'stack setup --upgrade-cabal' peut vous aider en fournissant la dernière librairie Cabal, mais n'est probablement pas nécessaire. –

+0

Merci, @MichaelSnoyman. Y a-t-il de la documentation pour le nouveau matériel d'installation personnalisée? Google ne m'a donné que des rapports de bug github. De plus, la première erreur que j'ai eue après l'exécution de 'stack stack --git --source-only' était' Avertissement de fichier CABAL dans /tmp/stack-upgrade25291/stack/stack.cabal: Ignorer le type de section inconnu: custom-setup' qui cela ne présage rien de bon. – Mittenchops

+0

@MichaelSnoyman, j'ai installé avec 'stack upgrade --git --source-only' et toujours les mêmes erreurs dans l'installation de cairo, threadscope et gtk2hs-buildtools. – Mittenchops

Répondre

1

La version Stack officiellement publiée ne supporte pas encore cela, mais le support est disponible sur master.Pour l'installer:

  • Run stack upgrade --git --source-only
  • Assurez-vous que le répertoire de destination (généralement $HOME/.local/bin) est sur votre PATH
  • Pour être encore plus sûr, exécutez stack --version et which stack

Après cette , stack build cairo devrait fonctionner.

1

Je pense que c'est le même problème que j'ai recently

Pourriez-vous essayer

stack setup --upgrade-cabal

et voir si elle résoudre le problème.

== Edit: ==

Cependant, pour répondre à votre première question, je peux installer threadscope par pile avec la commande suivante,

$ 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 

mais j'utilise Arch Linux. Pour compiler cairo avec succès, vous aurez besoin de la prise en charge du nouveau custom-setup feature in Cabal 1.24

+0

'$ configuration de la pile --upgrade-cabal Cabal actuellement installé est 1.24.2.0, le plus récent est 1.24.2.0. Je ne suis pas en train d'améliorer Cabal. » – Mittenchops

+0

Dommage que ça n'a pas marché. – wizzup