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

在Miso sample-app执行stack setup时触发solver参数错误

解决Miso sample-app中stack setup时的solver must be one of: modular错误

问题重现

在Miso的sample-app目录下执行stack setup时,触发了如下错误:

exit status: 1 stderr: solver must be one of: modular

调用栈信息:

error,在Cabal-2.0.1.0:Distribution.ReadE的libraries/Cabal/Cabal/Distribution/ReadE.hs:46:24处调用

原因分析

从详细日志能看出,ghcjs-boot在执行cabal命令时使用了--solver=topdown参数,但你当前使用的Cabal版本(2.0.1.0)已经不再支持topdown作为合法的solver选项,仅保留了modular,这直接导致ghcjs-boot执行失败,最终让stack setup以ExitFailure 1退出。

你的环境版本

  • Stack: 1.6.3 x86_64 hpack-0.20.0
  • Cabal: cabal-install 2.0.0.1,基于Cabal库2.0.1.0编译

解决方案

最直接且省心的办法是升级Stack到较新版本:
Stack 1.6.3是比较老旧的版本,后续的Stack版本已经适配了Cabal solver的变更,会自动处理ghcjs-boot的调用参数,避免这种不兼容问题。你可以通过官方安装脚本更新Stack,或者使用系统包管理器完成升级。

如果暂时无法升级Stack,也可以尝试以下手动修复方式:

  • 找到ghcjs-boot执行cabal命令的位置(通常位于Stack的本地缓存目录中)
  • 将命令中的--solver=topdown参数替换为--solver=modular
    不过这种方法需要定位具体文件,操作相对繁琐,优先推荐升级Stack的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:59:16