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

如何在本地切换GHC版本适配accelerate 1.3的base依赖

解决GHC版本切换以安装accelerate 1.3的问题

错误信息翻译

Error: cabal-3.10.2.1.exe: 无法解析依赖项:
[__0] 尝试: gpu-acceleration-haskell-0.1.0.0 (用户目标)
[__1] 下一个目标: base (gpu-acceleration-haskell 的依赖项)
[__1] 拒绝: base-4.17.2.1/installed-4.17.2.1 (冲突: gpu-acceleration-haskell => base^>=4.12)
[__1] 跳过: base-4.19.0.0, base-4.18.2.0, base-4.18.1.0, base-4.18.0.0, base-4.17.2.1, base-4.17.2.0, base-4.17.1.0, base-4.17.0.0, base-4.16.4.0, base-4.16.3.0, base-4.16.2.0, base-4.16.1.0, base-4.16.0.0, base-4.15.1.0, base-4.15.0.0, base-4.14.3.0, base-4.14.2.0, base-4.14.1.0, base-4.14.0.0, base-4.13.0.0 (具有导致前一个版本失败的相同特征: 被 'gpu-acceleration-haskell' 的约束 '^>=4.12' 排除)
[__1] 拒绝: base-4.12.0.0, base-4.11.1.0, base-4.11.0.0, base-4.10.1.0, base-4.10.0.0, base-4.9.1.0, base-4.9.0.0, base-4.8.2.0, base-4.8.1.0, base-4.8.0.0, base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, base-4.6.0.1, base-4.6.0.0, base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, base-4.4.0.0, base-4.3.1.0, base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, base-4.2.0.0, base-4.1.0.0, base-4.0.0.0, base-3.0.3.2, base-3.0.3.1 (来自不可升级包的约束需要已安装的实例)
[__1] 失败(回溯, 冲突集: base, gpu-acceleration-haskell)
在彻底搜索依赖树的其余部分后,这些是我最难实现的目标: base, gpu-acceleration-haskell

解决方案

使用 Cabal(优先推荐)

Cabal 配合 GHCup 可轻松管理多版本GHC,实现项目级版本隔离:

  1. 安装 GHCup
    GHCup 是 Haskell 官方工具链管理工具,用于安装和切换GHC、Cabal版本。执行以下命令完成安装:

    curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
    
  2. 安装兼容的GHC版本
    accelerate 1.3 要求 base >=4.12 && <4.15,对应GHC版本为:

    • GHC 8.6.x → base 4.12
    • GHC 8.8.x → base 4.13
    • GHC 8.10.x → base 4.14
      推荐安装最新的8.10系列版本:
    ghcup install ghc 8.10.7
    
  3. 为项目指定GHC版本

    • 临时使用:每次运行Cabal命令时手动指定编译器:
      cabal run --with-compiler=ghc-8.10.7
      
    • 永久生效:在项目根目录创建 cabal.project.local 文件,添加以下内容:
      with-compiler: ghc-8.10.7
      
      后续执行 cabal build、cabal run 等命令时,会自动使用该版本GHC,不影响全局默认版本。

使用 Stack

Stack 自带GHC版本管理,会为每个项目隔离独立的GHC环境:

  1. 确定兼容的Resolver
    Stack的Resolver对应固定GHC版本,选择使用GHC 8.10.x的Resolver,例如 lts-18.28(对应GHC 8.10.7)。

  2. 修改项目配置
    打开项目根目录的 stack.yaml 文件,修改 resolver 字段:

    resolver: lts-18.28
    
  3. 运行项目
    执行以下命令,Stack会自动下载并使用指定版本的GHC,完成依赖安装和项目运行:

    stack run
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 14:19:59