如何在Mac OS上安装Haskell

cmssoen2  于 2022-11-14  发布在  Mac
关注(0)|答案(7)|浏览(348)

我试图在我的MacBook上安装Haskell两天,但没有成功。
我所做的:

$ brew install ghc

好吧。现在我试着安装

$ cabal install text

并获取下一个错误消息:

Data/Text.hs:1074:4:
     error: invalid preprocessing directive
      #-}
       ^

我在谷歌上搜索了一下,找到了this
因此:

  • brew安装gcc48
$ /usr/local/bin/gcc-4.8 --version  
gcc-4.8 (GCC) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ cat /usr/local/lib/ghc-7.6.3/settings
  [("GCC extra via C opts", " -fwrapv"),
   ("C compiler command", "/usr/local/bin/gcc-4.8"),
   ("C compiler flags", " -m64 -fno-stack-protector  -m64"),
   ...
  • brew安装电缆安装
  • cabal安装文本

我也收到了同样的信息。
如何修复它们?

0yycz8jy

0yycz8jy1#

brew install ghc cabal-install
如果你喜欢自制的。

注:(已编辑以添加) Homebrew的ghc版本可能比OSX版的Haskell Platform下载的版本旧(或新),并且可能存在其他差异。您可以通过can check the release notes here了解Haskell Platform中包含的版本,以及其他感兴趣的信息。brew info ghc cabal-install将为您提供有关Homebrew版本的最新信息。
**注意:**上次我这样做时,我只是安装了haskell-stack,如Filippo的回答中所述。

3ks5zfa0

3ks5zfa02#

To install the "Haskell Stack" binaries via homebrew :

brew install haskell-stack

EDIT: Below my original answer

If you want to install the Haskell Platform binaries via homebrew:

brew install cask
brew cask install haskell-platform

cabal install cabal-install
f4t66c6m

f4t66c6m3#

尝试使用Mac version of the Haskell Platform,我没有Mac来试用它,但我希望cabal能在Haskell平台上开箱即用。

bd1hkmkf

bd1hkmkf4#

以下信息表明可能有可用的mac安装程序:

brew info haskell-platform

We no longer package haskell-platform. Consider installing ghc
and cabal-install instead:

brew install ghc cabal-install

A binary installer is available:
https://www.haskell.org/platform/mac.html
plupiseo

plupiseo5#

2022年,包括Mac在内的the Haskell Platform is deprecatedthe officially recommended way for most platforms都是先安装GHCupGHCup基本上是Haskell工具链的包管理器(GHCStackCabalHLS)。它可以在主目录中安装这些文件的多个版本,并将ghc/...命令“设置”(符号链接)为特定版本。
要安装GHCup,请使用安装脚本(source)。此脚本将安装GHCupGHC,询问一些有关设置PATH等的问题,并在发现Apple开发者命令行工具丢失时提示您安装这些工具。

curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

如果您使用的是Mac M1,并希望运行ghc 8.10.7或更低版本,则还需要安装介于9和12之间的llvm版本(包含),并将其放在路径中,以便ghc可以找到它。但是,目前9.2.4是默认版本,它有一个本地代码生成器(NCG),它在M1上开箱即用。虽然它可能仍然包含M1上的bug(请参阅here以取得详细信息)因此请考虑升级至9.2.4与ghcup install ghc 9.4.2 && ghcup set ghc 9.4.2。目前,9.4.2缺乏8.10.7所享有的套件支援广度,但已知的错误较少。
如果您发现自己在安装时遇到了麻烦,可以从头开始,重新安装开发人员工具和GHCup,方法是:

sudo rm -rf /Library/Developer/CommandLineTools
ghcup nuke
rm -rf ~/.ghcup
rm -rf ~/.stack
rm -rf ~/.cabal
# For the cautious, a reboot here is advised before proceeding
xcode-select --install
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

也可以通过Homebrew安装GHCup,尽管这需要手动更新$PATH并安装/设置所需的工具。

brew install ghcup
# Now add $HOME/.ghcup/bin to $PATH
ghcup install ghc && ghcup set ghc
kx5bkwkv

kx5bkwkv6#

有一个新的ghc-dot-app项目,它是Homebrew formula和Haskell Platform官方安装程序的替代方案。Haskell for Mac OS X。下面是Haskell Cafe上关于它的一个讨论线程:“Mac版自包含GHC”。以下是作者帖子中的一段引文:
它是如何工作的?
https://github.com/ghcformacosx/ghc-dot-app中,我有一个Main.hs脚本,它下载/构建/等等所有的先决条件。然后,它修补shell脚本,使其使用相对于自身的路径(在符号链接之后),而不是硬编码安装位置。它还修补包.conf.d文件,使其使用${pkgroot}相对路径。
另外,还有一个Xcode项目,它包含了所有的元数据,使它看起来像一个真实的的Mac应用程序包(图标,信息.plist),还有一个小可可应用程序,它有一个按钮来打开文档,并提供了将其添加到. bashrc中的PATH的说明。由于Mac OS X的man中的启发式,这将自动使man页面也工作。

gpfsuwkq

gpfsuwkq7#

尝试使用brew install haskell-platform安装Haskell。
如果您已经在Mavericks上,您将必须安装GCC(因为Mavericks附带Clang)。请按照以下说明操作:https://gist.github.com/cartazio/7131371

相关问题