GHCup与Cabal包版本信息冲突及项目本地包查询问题
GHCup与Cabal状态矛盾及本地包查询方案
一、GHCup与cabal info的状态矛盾解析
1. HLS状态不一致
ghcup tui显示HLS已安装,但cabal info hls返回未安装,原因是:
HLS是GHCup直接安装的独立开发工具,不属于Cabal包管理体系范畴,cabal info仅查询Cabal维护的全局/项目包索引,无法识别GHCup安装的工具。
验证HLS实际状态,使用以下命令:
ghcup list hls hls --version
2. Cabal工具与Cabal库版本不符
cabal是命令行工具,由GHCup独立分发,不存在名为cabal的Cabal包,所以cabal info cabal会显示未安装,确认工具版本直接用:cabal --versionCabal是Haskell的核心库包,cabal工具的版本和它依赖的Cabal库版本不需要完全匹配(比如cabal 3.10.3.0可依赖Cabal 3.10.2.0库),这是正常现象。
二、查询项目本地安装的包信息
如果dbus仅在项目目录本地安装,可通过以下命令查询:
- 进入项目目录后,列出当前项目环境下所有已安装包:
cabal list --installed - 或者通过Cabal环境调用
ghc-pkg查看本地包数据库:cabal exec -- ghc-pkg list - 直接查询指定本地包的信息:
cabal info --project dbus
内容的提问来源于stack exchange,提问作者Enlico
相关产品推荐
相关产品推荐

