web-dev-qa-db-fra.com

Installation de packages Haskell sur Mac

Je n'arrive pas à obtenir quelques packages Haskell à installer sur mon Mac (10.6.8). J'ai d'abord essayé Happstack et il a échoué, puis j'ai essayé Snap.

Parfois, lorsque je lance ghci, j'obtiens un défaut de segmentation.

D'autres fois, cela fonctionne et se passe comme suit:

GHCi, version 7.4.2: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude>

Lorsque vous essayez d'obtenir Snap:

....
....
....
Loading package vector-0.10.0.1 ... linking ... done.
Loading package zlib-0.5.4.0 ... linking ... done.
Loading package zlib-bindings-0.1.1.3 ... linking ... done.
Loading package zlib-enum-0.2.3 ... linking ... done.
Loading package snap-core-0.9.3.1 ... linking ... done.
Loading package snap-server-0.9.3.3 ... linking ... done.
Loading package directory-tree-0.11.0 ... linking ... done.
cabal: Error: some packages failed to install:
snap-0.11.2 failed during the building phase. The exception was:
ExitFailure 11

J'ai vu ce problème plusieurs fois mais rien ne l'a vraiment résolu pour moi. Des idées?

28
Jonovono

Avez-vous essayé d'utiliser homebrew ? Il gère les dépendances pour vous. Je suis sous Mac OS X 10.7.5, mais ces instructions devraient fonctionner pour vous.

En utilisant homebrew, vous pouvez installer haskell-platform en utilisant la commande brew. Cela prendra un moment. L'étape de compilation pour haskell-platform a pris 15 minutes.

$ brew search haskell
haskell-platform

$ brew install haskell-platform
==> Installing haskell-platform dependency: ghc
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/ghc-7.4.2.lion.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring ghc-7.4.2.lion.bottle.1.tar.gz
==> Caveats
This brew is for GHC only; you might also be interested in haskell-platform.
==> Summary
????  /usr/local/Cellar/ghc/7.4.2: 5176 files, 767M
==> Installing haskell-platform
==> Downloading http://lambda.haskell.org/platform/download/2012.4.0.0/haskell-platform-2012.4.0.0.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/haskell-platform/2012.4.0.0 --enable-unsupported-ghc-version
==> make install
==> Caveats
Run `cabal update` to initialize the package list.

If you are replacing a previous version of haskell-platform, you may want
to unregister packages belonging to the old version. You can find broken
packages using:
  ghc-pkg check --simple-output
You can uninstall them using:
  ghc-pkg check --simple-output | xargs -n 1 ghc-pkg unregister --force
==> Summary
????  /usr/local/Cellar/haskell-platform/2012.4.0.0: 952 files, 208M, built in 15.3 minutes

Une fois installé, vous devriez pouvoir exécuter:

$ ghc
ghc: no input files
Usage: For basic information, try the `--help' option.

Ainsi que l'interprète Haskell, ghci:

$ ghci
GHCi, version 7.4.2: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> putStrLn "Hello World"
Hello World
Prelude>
Leaving GHCi.

J'espère que cela t'aides!

42
shadanan

brew install haskell-platform n'est plus pris en charge. Vous voudrez peut-être

Erreur: aucune formule disponible pour la plateforme haskell
Nous ne proposons plus de plate-forme haskell. Pensez à installer ghc et cabal-install à la place:
brew install ghc cabal-install

30
chris Frisina

Puisque haskell-platform sur homebrew pour Mac est obsolète, vous pouvez utiliser brew install ghc cabal-install au lieu. Je l'ai fait sur Yosemite et cela a pris environ une minute…

> $ brew install ghc cabal-install                                             
==> Downloading https://homebrew.bintray.com/bottles/ghc-7.10.1_1.yosemite.bottl
######################################################################## 100.0%
==> Pouring ghc-7.10.1_1.yosemite.bottle.tar.gz
????  /usr/local/Cellar/ghc/7.10.1_1: 5423 files, 821M
==> Downloading https://homebrew.bintray.com/bottles/cabal-install-1.22.2.0.yose
######################################################################## 100.0%
==> Pouring cabal-install-1.22.2.0.yosemite.bottle.1.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
????  /usr/local/Cellar/cabal-install/1.22.2.0: 6 files, 19M
13
tamasgal

C'est une vieille question, mais étant donné qu'elle vient très haut sur la recherche Google. Voilà comment je suis arrivé ici.

$ brew update
$ brew install haskell-stack
$ stack --version
$ stack --help # "man stack" gives something completely different
$ stack setup # Install GHC
$ stack ghci

Source: http://seanhess.github.io/2015/08/04/practical-haskell-getting-started.html

Pourquoi empiler et non cabale?

Éditer:

J'ai trouvé ennuyeux de devoir écrire "stack ghci" chaque fois que je voulais utiliser "ghci". Une solution à cela était d'ajouter simplement ces lignes au fichier ~/.bash_aliases:

alias sghc='stack ghc'
alias sghci='stack ghci'
alias srunhaskell='stack runhaskell'

Ensuite, sourcez le fichier à appliquer:

$ source ~/.bash_aliases

Ensuite, je peux exécuter ghci et/ou haskell en exécutant ces commandes, et il utilisera la version de la pile:

$ sghc [filename]
$ sghci
$ srunhaskell
10
Olivier

Mise à jour: février 2016 : Bien que d'autres réponses aient été utiles, je n'ai pas trouvé de réponse complète et à jour.

L'installation est simple:

$ brew install ghc cabal-install

Une étape supplémentaire dont j'avais besoin pour effectuer la post-installation était:

$ cabal update

suivi par:

$ cabal install ghc-mod

Voir ici pour plus de détails.

haskell install

Alternativement, au lieu d'utiliser homebrew pour l'installation, visitez Haskell Platform pour l'image disque du programme d'installation - notez que Haskell Platform n'est compatible qu'avec OS X 10.6 et versions ultérieures.

Bien que, en règle générale, j'utilise toujours des homebrews pour gérer mes dépendances, quand il s'agit de Haskell, ma recommandation (sauf si vous savez vraiment ce que vous faites) est d'installer simplement ce binaire. Cela évite toute surprise plus loin sur la route. Il existe une excellente documentation après l'installation en local sur: fichier: ///Library/Haskell/doc/start.html

La réponse populaire à cette question (utiliser brew pour installer la plateforme haskell) n'est plus prise en charge.

not supported

8
arcseldon

Malheureusement, GHC 7.4 n'est pas pris en charge sur OS X 10.6; la page de téléchargement n'a qu'un programme d'installation pour 10.7, et comme vous pouvez le voir, ils le pensent. Je connais votre problème par expérience amère - j'ai été dans votre bateau pendant longtemps et je n'ai jamais trouvé de solution autre que la mise à niveau de Mac OS X (ou, probablement, la rétrogradation de GHC, mais je ne voulais pas vraiment le faire ). Une de mes collègues a réussi à faire fonctionner 7.4.1 sur OS X 10. 5 , mais cela a pris un effort non trivial de sa part (elle a dû utiliser une version différente de GMP, à savoir 5.0.5, et modifier le script de configuration de GHC), et je n'ai jamais essayé de le répliquer moi-même.

Au final, vous avez quatre options, dans un ordre de simplicité à peu près décroissant:

  1. Utilisez ne ancienne plateforme Haskell . Cela signifie la rétrogradation vers GHC 7.0.x (pas GHC 7.2.x - qui n'a jamais été dans la plate-forme); Cependant, il n'y a pas de bonne trace des versions de GHC et des versions de package. Wikipedia implique que 2011.2 était la première version avec GHC 7.0.x et que 2012.2 était la première version avec GHC 7.4.x, donc j'essaierais d'abord 2011.4.0.0.
  2. Installez GHC 7.2 (qui est pris en charge sous OS X ) seul et renoncez à la plate-forme Haskell. Cela peut provoquer des maux de tête, mais c'est possible. N'oubliez pas d'installer Cabal , cabal-install , tous les packages fournis avec la plateforme, etc.
  3. Mettez à niveau vers OS X 10.7 ou 10.8, si vous vous sentez comme un changement plus global (et plus coûteux).
  4. Essayez de reproduire ce que mon collègue a fait. (Bonne chance, mais c'est certainement possible.)
5

Réponse fin 2017. J'utilise macOS Sierra - 10.12.6 (16G29). Cela a fonctionné avec succès avec un temps d'installation sur mon MacBook Air de moins de cinq minutes:

brew cask install haskell-platform

Alors ghc --version signalé:

Le système de compilation Glorious Glasgow Haskell, version 8.2.1

2
Purplejacket