在Ubuntu安装Haskell的GTK2HS时遇Cabal配置失败问题
解决Ubuntu下安装gtk2hs-buildtools时Cabal包配置失败的问题
嘿,我之前在Ubuntu上折腾Haskell的时候也碰到过类似的问题,大概率是Cabal版本和系统GHC不兼容,或者本地缓存的依赖信息出问题了。试试下面这些步骤,应该能搞定:
1. 先把Cabal本身更到最新
旧版本的Cabal经常会和新包的依赖解析闹矛盾,先更新Cabal-install:
cabal update cabal install cabal-install --overwrite-policy=always
更新完后,记得把Cabal的bin目录加到环境变量里,不然系统可能还是用旧版本:
echo 'export PATH="$HOME/.cabal/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
可以用cabal --version确认一下版本已经更新了。
2. 清理Cabal的缓存文件
有时候缓存的旧包数据会导致依赖解析混乱,直接删掉这些缓存:
rm -rf ~/.cabal/packages rm -rf ~/.cabal/store rm -rf /tmp/cabal-tmp-*
3. 手动指定兼容的Cabal版本(如果更新后还是不行)
如果你的系统GHC版本比较老,可能扛不住Cabal-2.2.0.1。比如GHC 8.0.x对应的推荐Cabal版本是2.0.x,你可以先装匹配的版本:
cabal install Cabal==2.0.1.1
之后再尝试安装gtk2hs-buildtools:
cabal install gtk2hs-buildtools
4. 补上系统层面的依赖库
gtk2hs-buildtools依赖GTK相关的系统库,先确保这些库已经装了:
sudo apt-get install libgtk2.0-dev libglib2.0-dev libpango1.0-dev libcairo2-dev
最后一招:看完整错误日志找线索
如果上面的方法都没解决,去看完整的构建日志,里面肯定有更详细的错误细节,比如是不是缺某个头文件:
cat /home/vishad/.cabal/logs/Cabal-2.2.0.1.log
找到GHC具体报错的地方,就能针对性解决了。
内容的提问来源于stack exchange,提问作者Vishad Goyal
相关产品推荐
相关产品推荐

