Stack 1.6.5与Cabal 2.0.0.1兼容问题技术求助
解决Stack 1.6.5与Cabal 2.0.x的版本冲突问题
我来帮你搞定这个版本兼容的小麻烦!你遇到的情况是:用Stack 1.6.5搭配lts-11.2 resolver时,弹出了Cabal版本过新的警告,虽说这个问题之前在Stack 1.5.1里修复过,但1.6.5又出现了。下面给你几个实用的解决办法:
方法1:强制Stack使用内置Cabal版本
Stack本身自带了适配对应resolver的Cabal版本,你可以让它完全用自己管理的环境,避开系统里的高版本Cabal。执行这条命令就行:
stack config set system-ghc false
设置完重新跑构建命令,那个烦人的警告应该就消失了。
方法2:降级系统中的Cabal版本
如果一定要用系统级的Cabal,你可以把它降到Stack 1.6.5测试过的版本(对应lts-11.2的GHC 8.2.2,推荐Cabal 1.24.x系列)。执行:
cabal install cabal-install-1.24.0.2
要是系统里有多个Cabal版本,记得调整PATH环境变量,让降级后的版本优先被调用。
方法3:升级Stack到更稳定的版本
Stack 1.6.5确实有点年头了,后续的版本(比如1.9及以上)对Cabal 2.x的兼容性优化了很多。直接升级到最新稳定版,既能解决这个警告,还能拿到新功能和bug修复:
stack upgrade
升级完成后再跑构建,兼容性问题会自动解决。
额外说明
你的resolver lts-11.2对应的GHC是8.2.2,官方适配的Cabal版本是1.24.x,系统里的Cabal 2.0.0.1确实超出了它的适配范围,这就是警告出现的根源。上面三个方法都能有效解决问题,你可以根据自己的使用习惯选最合适的那个。
内容的提问来源于stack exchange,提问作者user855443
相关产品推荐
相关产品推荐

