GHCup 和 Cabal 在已安装软件包的版本方面存在混淆(系统方面和特定的 cabal 项目)

问题描述 投票:0回答:1

这是我在

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
询问“当前目录中”的信息?

haskell version ghc cabal ghcup
1个回答
0
投票

cabal info
命令告诉您安装了哪些 haskell 软件包。所以它告诉你
ghc
安装了haskell包(可以导入和链接),但没有安装cabal或hls haskell包。这是准确的!

你用 ghcup 安装的东西大部分都是 不是 haskell 包而是可执行的二进制文件,而且 ghcup 没有理由知道它们。

© www.soinside.com 2019 - 2024. All rights reserved.