首页 > 解决方案 > 解析索引缓存失败(Data.Binary.Get.runGet 在位置 16:)

问题描述

我正在尝试为我正在处理的项目编写安装脚本,我不得不通过以下链接再次安装 ghc(没有下载 vms 的资源)来测试它curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh:一切正常,但是当我使用运行项目时,cabal run proj我收到以下警告,其中 A,B 代表 32 个字符串:

Warning: Parsing the index cache failed (Data.Binary.Get.runGet at position
16: Non-matching structured hashes: A;
expected: B). Trying to regenerate the index
cache...

我去了我的主目录并删除.ghcup了空.ghc目录。然后我去usr/local/bin发现以下内容:

/usr/local/bin > ls | grep ghc
ghc
ghc-8.8.3
ghc-pkg
ghc-pkg-8.8.3
ghci
ghci-8.8.3
haddock-ghc-8.8.3
runghc
runghc-8.8.3

在我的 Brew 文件夹中,我有另一个 ghc-8.8.3 实例。我真的不确定我是否只是不经意间把自己搞砸了。是否会建议重新安装,或者是否会删除每个 .ghc 出现的栏以仅保留一个就可以了?

标签: haskellcabal

解决方案


看起来 Cabal 商店在此过程中不知何故变得不一致(参见cabal 问题 #6659的初步讨论)。假设您使用的是 GHC 8.8.3,删除~/.cabal/store/ghc-8.8.3应该可以正确地重新创建它。

顺便说一句,如果您计划通过 ghcup 管理 GHC、cabal-install 和其他工具的安装,您不妨删除系统范围的 Brew 安装,这可能是不必要的。


推荐阅读