You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除GHC快照后编译旧项目出现依赖缺失的解决方法

解决删除Haskell Stack快照后旧项目编译报错的问题

你遇到的问题本质是:删除的两个月以上的快照中,包含了旧项目依赖的groups-0.5.3库(对应报错里的HSgroups-0.5.3-IYEy0wlfuCnJAATXPgKDMS),Stack找不到已删除的快照路径,导致编译失败。以下是具体解决方法:

  • 强制重新构建项目依赖
    进入旧项目根目录,执行命令:

    stack build --force-dirty
    

    该命令会强制Stack重新校验所有依赖项,发现缺失的库后自动从Hackage下载并重建对应的快照环境。

  • 重新安装对应Resolver的快照环境
    查看旧项目stack.yaml文件中的resolver字段(比如lts-22.20,对应你使用的GHC 9.8.2),执行命令:

    stack resolver <你的resolver版本> --install-ghc
    

    这会重新安装该resolver对应的完整快照,补全缺失的依赖文件。

  • 彻底清理缓存后重建(极端情况)
    如果上述方法无效,可执行以下命令清理所有本地Stack缓存和快照:

    stack purge
    

    之后进入旧项目目录执行stack build,让Stack完全重新下载并构建所有依赖。

注:之前执行的stack clean --full仅清理项目自身的构建产物,无法修复全局快照缺失的问题,所以未能解决报错。

内容的提问来源于stack exchange,提问作者141592653

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 10:04:57