You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10下choco旧版GHC替换为ghcup新版GHC版本异常排查

问题原因

你遇到的版本不匹配问题核心是系统环境变量PATH优先级冲突:
早年通过choco安装的GHC 8.10.1所在路径,在系统PATH中的排序比ghcup的可执行文件目录更靠前,终端执行ghc命令时会优先命中choco安装的旧版本,因此不会调用ghcup安装、设置的版本。
从你贴的ghcup list输出可以确认:

  • 前缀带X的是未激活/未设为默认的版本
  • 前缀带IS的8.10.7是ghcup已经成功安装、且已经在ghcup层面设为全局默认的版本,ghcup本身的安装和设置流程没有报错,问题完全出在系统路径优先级上。
修复版本不匹配问题

按以下顺序操作即可解决:

  • 卸载choco安装的旧版GHC,避免后续持续出现路径冲突:用管理员权限打开PowerShell,执行命令 choco uninstall ghc -y
  • 检查系统PATH配置:ghcup在Windows下默认的可执行文件目录是C:\ghcup\bin,需要确认这个路径已经被加入系统PATH,且排序在其他残留的GHC安装路径之前。你可以在PowerShell中执行$env:Path -split ';'查看所有PATH条目,调整顺序后保存环境变量配置。
  • 完全关闭当前所有打开的终端窗口,重新打开新的终端,执行ghc --version校验,此时应该返回8.10.7的版本信息。如果需要切换到最新的9.2.3版本作为默认,执行ghcup set ghc 9.2.3即可,再次执行版本查询命令就能看到切换后的结果。
更新cabal、stack等全量组件

所有Haskell相关组件都可以直接通过ghcup管理更新,不需要再使用choco:

  • 更新cabal到最新版:依次执行ghcup install cabal latest、ghcup set cabal latest,完成后执行cabal --version校验
  • 更新stack到最新版:依次执行ghcup install stack latest、ghcup set stack latest,完成后执行stack --version校验
  • 后续常规维护:先执行ghcup upgrade更新ghcup本身到最新版本,再执行ghcup install ghc latest即可获取最新发布的GHC版本,按需通过ghcup set命令切换全局默认版本即可。

注意:所有涉及环境变量修改、ghcup默认版本切换的操作,都需要完全关闭旧终端、重新打开新终端后再做校验,旧终端会保留启动时加载的旧环境配置,无法读取最新修改。

内容的提问来源于stack exchange,提问作者Liisi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 20:36:29