Mac上Haskell的安装环境搭建

Mac上Haskell的安装环境搭建

Mac上Haskell的换源和安装

参考文章:vscode搭建haskell环境

参考文章针对的是旧版本的stack,本文针对较新版本的stack

stack

stack官方安装指导

Installing GHC automatically, in an isolated location.
Installing packages needed for your project.
Building your project.
Testing your project.
Benchmarking your project

正如官网所说,直接安装stack的好处是它自带Haskell的编译器GHC和Cabal(a system for building and packaging Haskell libraries and programs)等Heskell运行需要文件(个人觉得stack类似anaconda,环境管理+包管理工具)。但是国内安装不换源的话,搭建之路会很不顺利

  1. 使用brew安装stack

    1
    brew search haskell

    可以看到brew返回了两个结果,一个是Formulae下的haskell-brew,另一个是Cask类型下的haskell-for-mac,后者是个IDE,使用brew cask install haskell-for-mac下载,但是下载的过程太长,不知道到底是什么样,我们还是按照教程里的方法下载stack

    1
    brew install haskell-stack
  2. 换源

    这个时候如果按照stack官网的指示

    1
    2
    3
    4
    5
    stack new my-project
    cd my-project
    stack setup
    stack build
    stack exec my-project-exe

    很可能卡在setup步骤

    第一种错误是返回Connection Failure,开全局VPN也没用那种。根据我在stackOverflow查到的信息,主要原因可能是路由器认为该地址是不良链接,拒绝了访问,无脑解决方法是直接手机开热点

    第二种错误是执行stack setup之后一直卡在ghc-8.8.2: dowanload has begun其实就是原本的下载源在国外,所以下载速度起不来,所以我们要换清华的镜像源

    要换的源涉及两个文件:~/.cable/config ~/.stack/config.yaml

    首先换stack(stackage镜像使用帮助)和stack setup(hackage镜像使用帮助)的源,stack版本在2.1.1以上和以下不一样,这里只写2.1.1以上版本:

    • 打开~/.stack/config.yaml,加上:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      setup-info: "http://mirrors.tuna.tsinghua.edu.cn/stackage/stack-setup.yaml"
      urls:
      latest-snapshot: http://mirrors.tuna.tsinghua.edu.cn/stackage/snapshots.json
      package-indices:
      - download-prefix: http://mirrors.tuna.tsinghua.edu.cn/hackage/
      hackage-security:
      keyids:
      - 0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d
      - 1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42
      - 280b10153a522681163658cb49f632cde3f38d768b736ddbc901d99a1a772833
      - 2a96b1889dc221c17296fcc2bb34b908ca9734376f0f361660200935916ef201
      - 2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3
      - 51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921
      - 772e9f4c7db33d251d5c6e357199c819e569d130857dc225549b40845ff0890d
      - aa315286e6ad281ad61182235533c41e806e5a787e0b6d1e7eef3f09d137d2e9
      - fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0
      key-threshold: 3 # number of keys required

      # ignore expiration date, see https://github.com/commercialhaskell/stack/pull/4614
      ignore-expiry: no

    现在换cabal的源

    • 在终端执行cabal updateCtrl+C停止, 然后进行下一步。报错没关系,这一步的目的是生成~/.cabal/config配置文件

    • 打开~/.cabal/config ,加入

      1
      2
      repository mirrors.tuna.tsinghua.edu.cn
      url: http://mirrors.tuna.tsinghua.edu.cn/hackage

      为了速度,可以将官方仓库注释掉。实际有朋友反应他的配置文件中本身就没有官方仓库这一行

      1
      2
      -- repository hackage.haskell.org
      -- url: http://hackage.haskell.org/
  3. 现在可以愉快地按照stack官方安装指导 中的步骤继续了

    1
    2
    3
    4
    5
    stack new my-project
    cd my-project
    stack setup
    stack build
    stack exec my-project-exe
  4. 或者像python一样在终端运行.hs文件

    1
    2
    3
    runhaskell filename
    # 或者
    runhs filename

Hs学习笔记

<–To be Continued–>

https://www.w3cschool.cn/hsriti/

title:Mac上Haskell的安装环境搭建

author:Anne416wu

link:https://www.annewqx.top/posts/32573/

publish time:2020-02-20

update time:2022-07-20


 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×