mime-mail和xmlhtml存在冲突的依赖关系

时间:2016-02-19 18:38:48

标签: haskell virtual-machine dependency-management cabal

在撰写本文时,我相信我正在运行最新的Haskell平台。 GHC版本是7.6.3。 Cabal-install版本为1.16.0.2,cabal版本为1.16.0。这是在运行Ubuntu 14.04.2的虚拟机上运行。

这是我的问题。我有一个依赖于mime-mail和xmlhtml的应用程序。这两个包都依赖于blaze-builder。当我以任意顺序安装这两个软件包时,安装第二个软件包会抱怨它可能会破坏另一个软件包,而它确实会破坏另一个软件包。运行cabal配置抱怨blaze-builder缺失,并且是我稍后安装的任何软件包(mime-mail或xmlhtml)所必需的。

现在这是奇怪的部分。在运行相同版本的GHC和cabal的物理服务器上,这可以很好地构建一些警告。它也运行相同版本的Ubuntu。我能看到的唯一区别是,有效的是物理机器,而不是虚拟机器。

不,我不是在沙箱中建造。我一直在阅读关于沙盒的内容,但我认为这不会有帮助,因为冲突的依赖包在同一个应用程序中。

这个物理机器正在消失,这使我的问题更加复杂。因此,我需要在我的本地VM上运行此开发环境。

关于下一步要去哪里的建议?

戴夫史密斯

1 个答案:

答案 0 :(得分:1)

根据n.m.的建议,我创建了一个新的VM,只安装了GHC和cabal,即不是完整的haskell-platform软件包。我无法在这种环境下创建沙箱。命令cabal sandbox init失败,并显示有关无法识别沙箱命令的错误。

但是,在安装libpq-dev来修复安装客户端PostgreSQL的haskell库的问题后,我能够无错误地构建我的应用程序。

我确实做了一件不同的事情。我没有做cabal configure然后自己安装所有缺失的依赖项,而是做了cabal install --only-dependencies并让cabal决定以哪种顺序安装哪些依赖项。

所以我现在有一个适用于此应用程序的工作开发环境,但我只留下一个问题。

Haskell平台安装做了什么导致了这个问题,为什么安装只是编译器和cabal更好?好的,两个问题。我什么时候可以安装整个Haskell平台包?

感谢您的帮助!

戴夫