如何在Mac OS上安装Haskell

dem*_*mas 25 macos installation haskell

我试图在我的Macbook上安装Haskell两天,但无法取得成功.

我做了什么:

$ brew install ghc
Run Code Online (Sandbox Code Playgroud)

精细.现在我正在尝试安装

$ cabal install text
Run Code Online (Sandbox Code Playgroud)

并获取下一条错误消息:

Data/Text.hs:1074:4:
     error: invalid preprocessing directive
      #-}
       ^
Run Code Online (Sandbox Code Playgroud)

我用Google搜索并找到了这个.

所以:

  • 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"),
       ...
    
    Run Code Online (Sandbox Code Playgroud)
  • brew安装cabal-install

  • cabal安装文本

我得到了同样的消息.

我该如何解决这些问题?

der*_*ekv 42

brew install ghc cabal-install

如果你喜欢自制软件.

注意:( 编辑添加) Homebrew可能有比OSX的Haskell平台下载更旧(或更新)的ghc版本,并且可能存在其他差异.您可以在此处查看Haskell平台中包含的版本的发行说明以及其他感兴趣的信息.brew info ghc cabal-install将为您提供有关Homebrew版本的最新信息.

  • 准备好让你的计算机在30到60分钟内燃烧,这样就可以永久地编译.通过安装二进制文件,请在两分钟内查看/sf/answers/2047296751/. (8认同)

Fil*_*ale 32

如果要Haskell Platform通过自制程序安装二进制文件:

brew install cask
brew cask install haskell-platform

cabal install cabal-install
Run Code Online (Sandbox Code Playgroud)

  • 这就是 [Haskell.org](https://www.haskell.org/platform/mac.html#osx-homebrewcask) 所说的 [而不是使用 Homebrew 安装 GHC](https://stackoverflow.com/questions /15239289/how-to-install-haskell-cabal-tool-for-haskell-7-6-1-on-mac-osx)。 (2认同)
  • 好吧@Indigenuity时代已经过去了,现在的命令是: `brew install haskell-stack` 感谢您的提醒,我已经更新了我的答案 (2认同)

Bas*_*ink 15

尝试使用Mac版本的Haskell平台,我没有Mac试用,但我希望能cabal在Haskell平台上开箱即用.

  • “Haskell 平台自 2022 年起已弃用,不再是安装 Haskell 的推荐方式。有关安装 Haskell 的最新推荐方式,请参阅下载页面。” (3认同)

xmk*_*hen 10

以下信息表明可能有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
Run Code Online (Sandbox Code Playgroud)

  • 现在它显示了三个组件:ghc、cabal-install 和 haskell-stack (3认同)

小智 9

2022 年,Haskell 平台将被弃用官方推荐的大多数平台(包括 Mac)的方式是先安装GHCupGHCup基本上是 Haskell 工具链的包管理器 ( GHC, Stack, Cabal, HLS)。它可以将每个版本的多个版本安装到主目录中,并将ghc/... 命令“设置”(符号链接)到特定版本。

要安装GHCup,请使用安装脚本()。这会安装GHCupGHC,询问一些有关设置 PATH 等的问题,并提示您安装 Apple 开发人员命令行工具(如果发现它们丢失)。

curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 Mac M1 并且想要运行ghc8.10.7 或更早版本,则还需要安装llvm9 到 12(含)之间的版本,并将其放在路径中以便ghc可以找到它。但目前,9.2.4 是默认版本,它有一个可以在 M1 上开箱即用的本机代码生成器 (NCG)。不过,它可能仍然包含 M1 上的错误(有关详细信息,请参阅此处),因此请考虑使用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
Run Code Online (Sandbox Code Playgroud)

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

brew install ghcup
# Now add $HOME/.ghcup/bin to $PATH
ghcup install ghc && ghcup set ghc
Run Code Online (Sandbox Code Playgroud)