执行stack install ghc-mod时遇依赖版本不匹配错误求助
解决
stack install ghc-mod的版本依赖冲突问题 你遇到的是典型的依赖版本不兼容问题——ghc-mod 5.8.0.0是比较早期的版本,它的依赖要求和你当前Stack环境里的GHC、Cabal等核心包版本完全不匹配:
- ghc-mod 5.8.0.0要求GHC版本
<8.2,但你用的是ghc-8.2.2 - 它要求Cabal版本在
>=1.18 && <1.25之间,你当前配置的是Cabal-2.0.1.1 - 同时base、extra、monad-journal等核心包的版本也超出了它的兼容范围
给你几个可行的解决办法:
1. 安装适配GHC 8.2的ghc-mod版本
ghc-mod的版本和GHC版本是强绑定的,GHC 8.2对应的ghc-mod兼容版本是5.9.x系列。你可以直接指定版本安装:
stack install ghc-mod-5.9.0.0
2. 通过指定Resolver来自动匹配兼容依赖
Stack的Resolver(比如LTS系列)已经预配置了一套兼容的包版本集合,你可以用对应GHC 8.2的Resolver来安装ghc-mod,比如LTS-11.x系列:
stack install ghc-mod --resolver lts-11.22
这样Stack会自动拉取所有和该Resolver兼容的依赖,不会再出现版本冲突。
3. 清理本地缓存后重试
如果之前的安装失败残留了缓存文件,可能会影响新的安装,先清理缓存再尝试:
stack clean stack install ghc-mod --resolver lts-11.22
核心思路就是让ghc-mod的版本和你当前使用的GHC版本匹配,因为旧版ghc-mod根本不支持GHC 8.2及以上的版本,所以升级ghc-mod到对应兼容版本是最直接的解决方式。
内容的提问来源于stack exchange,提问作者softshipper
相关产品推荐
相关产品推荐

