这是我在
ghcup tui
的终端中运行 $HOME
时看到的内容:
┌──────────────────────────────────GHCup──────────────────────────────────┐
│ Tool Version Tags Notes │
│─────────────────────────────────────────────────────────────────────────│
│✔✔ GHCup 0.1.30.0 latest,recommended │
│─────────────────────────────────────────────────────────────────────────│
│✗ Stack 2.15.7 latest │
│✗ Stack 2.15.5 recommended │
│✗ Stack 2.15.3 │
│─────────────────────────────────────────────────────────────────────────│
│✗ HLS 2.9.0.1 latest │
│✗ HLS 2.9.0.0 │
│✗ HLS 2.8.0.0 │
│✔✔ HLS 2.7.0.0 recommended │
│✗ HLS 2.6.0.0 │
│─────────────────────────────────────────────────────────────────────────│
│✗ cabal 3.12.1.0 latest │
│✔✔ cabal 3.10.3.0 recommended │
│✗ cabal 3.6.2.0-p1 │
│─────────────────────────────────────────────────────────────────────────│
│✗ GHC 9.10.1 latest,base-4.20.0.0 │
│✔ GHC 9.8.2 base-4.19.1.0 hls-powered,2024-02-23│
│✗ GHC 9.6.6 base-4.18.2.1 │
│✗ GHC 9.6.5 base-4.18.2.1 │
│✔✔ GHC 9.4.8 recommended,base-4.17.2.1 hls-powered │
│✗ GHC 9.2.8 base-4.16.4.0 hls-powered │
│✗ GHC 9.0.2 base-4.15.1.0 │
│✗ GHC 8.10.7 base-4.14.3.0 │
│✗ GHC 8.8.4 base-4.13.0.0 │
│✗ GHC 8.6.5 base-4.12.0.0 │
│✗ GHC 8.4.4 base-4.11.1.0 │
└─────────────────────────────────────────────────────────────────────────┘
如果我在该终端输入
cabal info ghc | grep -i installed
,我会得到
Versions installed: 9.4.8
如果我从
GHC
设置其他已安装的 ghcup tui
,并重新运行相同的命令,我得到
Versions installed: 9.8.2
意味着
cabal info ghc
反映了我通过 GHCup 设置的 GHC 版本。
但是如果我进入
cabal info hls | grep -i installed:
我明白了
Versions installed: [ Not installed ]
这与我在上面的屏幕中看到的明显相反,这告诉我 HLS 2.7.0.0 已安装并设置。
同样,如果我这样做
cabal info cabal | grep -i installed:
我明白了
Versions installed: [ Not installed ]
但是在没有
grep
ping 任何东西的情况下运行它表明:
* cabal (library)
Synopsis: placeholder for Cabal package, you want the upper case Cabal
Versions available: 0.0.0.0
Versions installed: [ Not installed ]
Homepage: [ Not specified ]
Bug reports: [ Not specified ]
Category: Development
License: BSD2
Author: Carter Tazio Schonwald
Maintainer: [email protected]
Source repo: [ Not specified ]
Dependencies: youProbablyWantCapitalCabal <0 && >1, base <300
Cached: No
Modules:
所以我尝试了
cabal info Cabal | grep -i installed:
这导致了
Versions installed: 3.10.2.0
这也与我在上面的屏幕中看到的形成对比,这表明我有 Cabal 3.10.3.0,而不是 3.10.2.0。
任何人都可以帮助我理解这些相互矛盾的信息的含义吗?
此外,即使我在
这个项目中使用
dbus
,命令
cabal info dbus | grep -i installed:
结果
Versions installed: [ Not installed ]
但我认为这是正常的,因为
dbus
不是“系统明智”安装的,而是仅在我克隆存储库并构建项目的地方直接安装?我对么?在这种情况下,如果问题有意义的话,我将如何使用 cabal info
询问“当前目录中”的信息?
cabal info
命令告诉您安装了哪些 haskell 软件包。所以它告诉你ghc
安装了haskell包(可以导入和链接),但没有安装cabal或hls haskell包。这是准确的!
你用 ghcup 安装的东西大部分都是 不是 haskell 包而是可执行的二进制文件,而且 ghcup 没有理由知道它们。