Windows 10 使用 cabal 安装库时出现 Could not resolve dependencies 报错
问题根因
你遇到的是GHC核心包依赖冲突,核心逻辑如下:
base是和GHC版本严格绑定的核心系统包,无法单独升级或降级,你报错信息中的base-4.15.0.0对应GHC 9.0.x版本- 你当前Windows环境的全局包约束中存在
parconc-examples-0.4.8的安装要求,该包对base的版本限制为>=4.5 && <4.14,和你当前GHC 9.0.x自带的base版本完全不兼容 - Linux环境可正常安装是因为你Linux上部署的GHC版本≤8.10.x,对应base版本≤4.14,刚好符合
parconc-examples的依赖要求
解决方案
按操作成本从低到高排序:
- 绕过冲突直接安装
执行带约束的安装命令,跳过parconc-examples的示例组件安装即可:cabal install gtk --constraint "parconc-examples -examples" - 放宽依赖版本限制
强制cabal忽略parconc-examples对base的版本上限要求,用现有版本编译:cabal install gtk --allow-newer=parconc-examples:base
该操作不会影响其他包的依赖逻辑,parconc-examples对base的版本上限限制通常只是未及时更新配置,实际兼容高版本base - 使用独立沙箱环境安装
在目标工作目录下执行以下命令,创建完全隔离的cabal沙箱环境,避免全局包约束的影响:cabal sandbox init cabal install gtk - 降级GHC版本
安装GHC 8.10.7版本,对应base版本为4.14.3.0,完全符合parconc-examples的依赖要求,安装完成后重新执行安装命令即可。
内容的提问来源于stack exchange,提问作者Hải Bình
相关产品推荐
相关产品推荐

