我有多个安装版本的相同haskell / cabal包。哪一个投入使用?

时间:2012-05-15 19:36:08

标签: haskell packages ghc cabal ghci

主要问题:我安装了多个版本的软件包。在ghc / ghci中,如何将包中的模块作为依赖项的模块,我如何知道在编译或运行时使用的版本?

相关问题:如果我正在安装一个具有依赖关系的cabal包,该包可以通过多个版本的包来满足。将使用哪个版本?最新版本?

2 个答案:

答案 0 :(得分:6)

ghc更喜欢链接最新版本(即版本号最高)。

如果与cabal链接,它将解析.cabal文件中指定的版本(当没有给出上限时,更喜欢更新版本。)

除非给出约束,否则cabal-install将更喜欢最新版本。

在存在约束依赖resolution becomes NP-complete的情况下,cabal依赖求解器来找到令人满意的包赋值。

答案 1 :(得分:2)

一些有用的命令,可以实际查看已安装的软件包并控制它们是否被使用:

ghc-pkg list

ghc-pkg register

ghc-pkg unregister