Подтвердить что ты не робот

Установка пакетов Haskell на Mac

Я не могу найти несколько пакетов Haskell для установки на моем Mac (10.6.8). Я сначала попробовал Happstack, и это не удалось, и затем я попробовал Snap.

Иногда, когда я запускаю 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>

При попытке получить 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

Я видел эту проблему несколько раз, но ничего не решил для меня. Любые идеи?

4b9b3361

Ответ 1

Вы пытались использовать homebrew? Он обрабатывает зависимости для вас. Я нахожусь в Mac OS X 10.7.5, но эти инструкции должны работать для вас.

Используя homebrew, вы можете установить haskell-платформу с помощью команды brew. Это займет некоторое время. Этап компиляции для haskell-платформы занял 15 минут.

$ 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

После установки вы сможете запустить:

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

Как и интерпретатор 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.

Надеюсь, это поможет!

Ответ 2

brew install haskell-platform больше не поддерживается. Вы можете захотеть

Ошибка: нет доступной формулы для haskell-платформы
Мы больше не упаковываем haskell-платформу. Рассмотрите возможность установки ghc и cabal-install вместо:
brew установить ghc cabal-install

Ответ 3

Так как haskell-platform для homebrew для Mac устарел, вы можете использовать brew install ghc cabal-install. Я сделал это на Йосемити, и потребовалось около минуты...

> $ 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

Ответ 4

Обновление: февраль 2016 г.. Хотя другие ответы были полезными, я не нашел полного и актуального ответа.

Установка проста:

$ brew install ghc cabal-install

Дополнительным шагом, который я должен был выполнить после установки, был:

$ cabal update

а затем:

$ cabal install ghc-mod

Подробнее см. здесь.

haskell install

В качестве альтернативы вместо использования homebrew для установки посетите Haskell Platform для образа диска установщика - обратите внимание, что платформа Haskell совместима только с ОС X 10.6 и более поздних.

Хотя, как правило, я всегда использую homebrew для управления моими зависимостями, когда речь заходит о Haskell, моя рекомендация (если вы действительно не знаете, что вы делаете) - это просто установить этот двоичный файл. Это позволяет избежать любых неожиданностей в будущем. Существует отличная документация после установки локально: файл:///Library/Haskell/doc/start.html

Популярный ответ на этот вопрос (с использованием brew для установки haskell-платформы) больше не поддерживается.

не поддерживается

Ответ 5

Это старый вопрос, но, учитывая его, он довольно высок в поиске Google. Вот как я сюда попал.

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

Источник: http://seanhess.github.io/2015/08/04/practical-haskell-getting-started.html

Зачем ставить, а не кабалу?

Edit:

Мне было досадно писать "stack ghci" каждый раз, когда я хотел использовать "ghci". Решением этого было просто добавить эти строки в файл ~/.bash_aliases:

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

Затем введите файл для применения:

$ source ~/.bash_aliases

Затем я могу запустить ghci и/или haskell, выполняющий эти команды, и будет использовать версию стека:

$ sghc [filename]
$ sghci
$ srunhaskell

Ответ 6

К сожалению, GHC 7.4 не поддерживается в OS X 10.6; страница загрузки содержит только установщик для 10.7, и, как вы можете видеть, это означает это. Я знаю вашу проблему из-за горького опыта: я долго был в вашей лодке, и я не нашел решения, кроме обновления Mac OS X (или, предположительно, отказал GHC, но я действительно не хотел этого делать). Мой коллега сумел получить 7.4.1, работающий на OS X 10.5, но с ее стороны потребовалось нетривиальное усилие (ей пришлось использовать другую версию GMP, а именно 5.0.5, и отредактировать настройку GHC script), и я никогда не пытался воспроизвести его сам.

В итоге у вас есть четыре варианта, примерно в порядке убывания простоты:

  • Используйте более старую платформу Haskell. Это означает понижение до GHC 7.0.x(а не GHC 7.2.x - это никогда не было в Платформе); нет хорошей записи о том, какие версии GHC были в версиях пакетов. Википедия подразумевает, что 2011.2 была первой версией с GHC 7.0.x и что 2012.2 была первой версией с GHC 7.4.x, поэтому я бы попытался 2011.4.0.0.
  • Установите GHC 7.2 (который поддерживается в OS X) сам по себе и отказывается от платформы Haskell. Это может вызвать головные боли, но это возможно. Не забудьте установить Cabal, cabal-install, все пакеты, поставляемые с платформой, и т.д.
  • Перейдите на OS X 10.7 или 10.8, если вы чувствуете себя более глобальными (и более дорогостоящими) изменениями.
  • Попробуйте воспроизвести то, что сделал мой коллега. (Желаем удачи, но это определенно возможно.)

Ответ 7

В конце 2017 года ответ. Я бегу macOS Sierra - 10.12.6 (16G29). Это успешно работало с временем установки на моем MacBook Air менее чем за пять минут:

brew cask install haskell-platform

Тогда ghc --version сообщило:

Славная система компиляции Glasgow Haskell, версия 8.2.1