如何在cabal中查找已安装的软件包的反向依赖项

时间:2016-02-03 05:16:52

标签: haskell cabal cabal-install

我需要安装最新的基础软件包,但是cabal不允许我这样做

cabal install base --reinstall
Resolving dependencies...
cabal: Could not resolve dependencies:
next goal: base (user goal)
rejecting: base-4.8.2.0, 4.8.1.0, 4.8.0.0, 4.7.0.2, 4.7.0.1, 4.7.0.0, 4.6.0.1,
4.6.0.0, 4.5.1.0, 4.5.0.0, 4.4.1.0, 4.4.0.0, 4.3.1.0, 4.3.0.0, 4.2.0.2,
4.2.0.1, 4.2.0.0, 4.1.0.0, 4.0.0.0 (only already installed instances can be
used)
rejecting: base-3.0.3.2 (conflict: base => base>=4.0 && <4.3)
rejecting: base-3.0.3.1 (conflict: base => base>=4.0 && <4.2)
Dependency tree exhaustively searched.

所以我认为当我取消注册将此包保存到旧版本的依赖项时,我可以这样做

ghc-pkg unregister some_annoying_package

但我怎样才能找到这些包裹。我发现只有

cabal-db revdeps base

这给了我所有的依赖关系,而不仅仅是安装的hackage。

1 个答案:

答案 0 :(得分:1)

更新编译器更新了基础包。正如user2407038所解释的那样:

  

您无法使用cabal重新安装基座。如果需要更新base,则必须更新编译器版本。一般情况下,如果你执行ghc-pkg取消注册,它将首先告诉你这将被破坏的内容(因此,取消注册以取消注册所需的依赖关系)但在这种情况下这不适用。