CentOS 7下cabal update异常及升级cabal-install报错求助
解决CentOS 7下cabal安装shelltestrunner的问题
1. 清理损坏的索引缓存
先删除cabal的旧索引和缓存文件,彻底清除损坏的索引数据:
rm -rf ~/.cabal/packages/hackage.haskell.org/* rm -rf ~/.cabal/store/ghc-*
2. 更换Hackage源加速更新
CentOS 7默认Hackage源国内访问极慢,替换为国内镜像源提升速度:
编辑~/.cabal/config文件,找到remote-repo配置项,替换为清华镜像源:
remote-repo: hackage.haskell.org:http://mirrors.tuna.tsinghua.edu.cn/hackage/packages
如果文件中无此配置,直接在末尾添加上述内容即可。
3. 重新更新索引
执行更新命令,此时速度会大幅提升:
cabal update
4. 直接安装shelltestrunner
跳过cabal升级操作,直接安装目标软件:
cabal install shelltestrunner
若出现依赖版本不兼容提示,可指定兼容的版本范围(示例):
cabal install shelltestrunner --constraint='shelltestrunner < 1.10'
5. 若仍失败,升级cabal到新版(替代方案)
yum安装的cabal版本过旧,可能无法处理新包索引,通过ghcup安装新版:
- 安装ghcup:
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
- 配置环境变量(按提示操作后,重启终端或执行):
source ~/.bashrc
- 安装并设置新版cabal:
ghcup install cabal ghcup set cabal
- 再次更新索引并安装:
cabal update cabal install shelltestrunner
内容的提问来源于stack exchange,提问作者Morag Hughson
相关产品推荐
相关产品推荐

