怎样在国内网络环境安装和运行 Haskell Stack¶
- 首次发布:2022-03-15
国内镜像地址
hackage 镜像
stackage 镜像
从任一 stackage 镜像下载 stack binary release.
例如,目前 http://mirrors.ustc.edu.cn/stackage/stack/ 文件夹中,最新的版本是 http://mirrors.ustc.edu.cn/stackage/stack/stack-2.7.5-linux-x86_64-static.tar.gz 解压缩后复制到任一 PATH 目录。运行
stack --version
检查是否安装成功。配置 hackage 和 stackage 镜像.
参考 Hackage 源使用帮助 Stackage 源使用帮助
配置全局 stack 选项和配置。需要创建/修改以下文件:
~/.stack/config.yaml
~/.stack/global-project/stack.yaml
~/.stack/pantry/global-hints-cache.yaml
进入准备构建的 Haskell 项目目录,运行 stack update 下载 resolver 对应的 package index. 这个 index 没有国内镜像,只能从 github 拉取。 需要科学上网。 在这里我使用本地的 HTTP 代理服务器。
export HTTPS_PROXY=127.0.0.1:8123 stack update
取消翻墙,构建你的项目,如果本地没有合适resolver的ghc,stack会自动从镜像站下载ghc。
export HTTPS_PROXY= stack setup # optional stack build -j3 --pedantic --test
后续构建同一项目,只需进入项目目录,然后执行
stack build -j3 --pedantic --test
如果要构建另一个使用不同 resolver 的项目,则需要再次翻墙获取 package index.
总结:在国内使用stack构建Haskell项目,最好有合适的科学上网工具,不然可能还是会卡住。