主要问题:我安装了多个版本的软件包。在ghc / ghci中,如何将包中的模块作为依赖项的模块,我如何知道在编译或运行时使用的版本?
相关问题:如果我正在安装一个具有依赖关系的cabal包,该包可以通过多个版本的包来满足。将使用哪个版本?最新版本?
答案 0 :(得分:6)
ghc更喜欢链接最新版本(即版本号最高)。
如果与cabal链接,它将解析.cabal文件中指定的版本(当没有给出上限时,更喜欢更新版本。)
除非给出约束,否则cabal-install将更喜欢最新版本。在存在约束依赖resolution becomes NP-complete的情况下,cabal依赖求解器来找到令人满意的包赋值。
答案 1 :(得分:2)
一些有用的命令,可以实际查看已安装的软件包并控制它们是否被使用:
ghc-pkg list
ghc-pkg register
ghc-pkg unregister