Haskell开发环境配置
操作系统:Win11
参考资料:
我们使用GHCup这样一个工具来帮助我们安装Haskell工具链,由于默认下载源在境外网站,因此国内用户需要使用镜像站来加快下载的速度。
首先在Windows powershell终端中执行
$env:BOOTSTRAP_HASKELL_YAML = 'https://mirrors.ustc.edu.cn/ghcup/ghcup-metadata/ghcup-0.0.7.yaml'
Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://mirrors.ustc.edu.cn/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true
输入希望安装的目录并回车,全部选择默认配置。
由于Windows缺少编译工具等,GHCup会先下载msys2这样一个工具包。该工具包同样默认从境外源下载,因此可以使用VPN等工具加速下载,例如在Clash中打开一个ps终端执行上述命令。
msys2下载完之后按Ctrl+C终止命令,此时关闭代理,重新打开ps窗口执行上述命令。GHCup会自动下载cabal等工具,当cabal安装完后,终端会卡在Downloading the latest package list from hackage.haskell.org
这一行,再次终止命令。
在Haskell安装目录下的cabal文件夹内找到config
文件,将其中
repository hackage.haskell.org
url: http://hackage.haskell.org/
-- secure: True
-- root-keys:
-- keys-threshold: 3
替换为科大源
repository mirrors.ustc.edu.cn
url: https://mirrors.ustc.edu.cn/hackage/
secure: True
然后执行
cabal update
可以看到终端显示Downloading the latest package list from mirrors.ustc.edu.cn
,等待其将package list下载完。
使用cabal安装HLS
,构建出的可执行文件应该在cabal/bin
下
cabal install haskell-language-server
安装完成后,在VSCode中安装Haskell
插件。为Haskell插件添加HLS的配置项即可。


另:此方法安装的cabal可能版本较老,install新版本依赖时可能在build环境出错,可以使用ghcup install cabal ${version}指定安装新版本cabal,并依旧使用上述方法替换cabal的config。