Haskell环境下用Cabal安装cairo-0.13.8.2失败求助
解决方案
一、查看已安装的cairo版本
使用以下命令可快速确认当前环境中已安装的cairo库版本:
cabal list --installed cairoghc-pkg list cairo
执行后会输出类似结果,其中的Installed versions字段即为当前已安装版本:
* cairo Synopsis: Binding to the Cairo library Default available version: 0.13.10.0 Installed versions: 0.13.10.0
二、解决cairo-0.13.8.2的依赖冲突问题
错误日志显示当前环境存在同时要求cairo0.13.8.2和cairo0.13.10.0的矛盾约束,这是因为全局环境中已有其他依赖包绑定了0.13.10.0版本。最稳妥的解决方式是创建独立的cabal环境隔离依赖:
- 创建新的cabal环境(示例环境名为
cairo-old):
cabal new-create cairo-old
- 进入该独立环境:
cabal shell cairo-old
- 在环境内安装指定版本的cairo:
cabal install --lib cairo-0.13.8.2
此方法可在独立环境中使用cairo-0.13.8.2,不会影响全局环境的其他依赖。
若一定要在全局环境安装,需先找出并卸载依赖cairo-0.13.10.0的包:
- 用
ghc-pkg dependents cairo-0.13.10.0查看依赖它的包 - 执行
ghc-pkg remove [包名]卸载这些包后,再尝试安装cairo-0.13.8.2
注意:此方式可能破坏其他项目的依赖,谨慎操作
内容的提问来源于stack exchange,提问作者Vivek Soorya
相关产品推荐
相关产品推荐

