我相信在写这篇文章的时候,我正在运行最新的Haskell平台。GHC版本为7.6.3。cabal -安装版本为1.16.0.2,cabal版本为1.16.0。这是在运行Ubuntu 14.04.2的virtualbox机器上运行的。
这就是我的问题。我有一个应用程序,它同时依赖于mime-mail和xmlhtml。这两个包都依赖于blaze-builder。当我按任意顺序安装这两个包时,安装第二个包时会抱怨可能会破坏另一个包,而它确实破坏了另一个包。运行cabal configure会报告blaze-builder缺失,并且是我后来安装的任何包(mime-mail或xmlhtml)所必需的。
现在是奇怪的部分了。在运行相同版本的GHC和cabal的物理服务器上,可以很好地构建,但会出现一些警告。它也运行相同版本的Ubuntu。我能看到的唯一区别是,能工作的是物理机,不能工作的是virtualbox机器。
不,我不是在沙箱中构建。我一直在读关于沙箱的文章,但我不认为它会有帮助,因为相互冲突的依赖包在同一个应用程序中。
我的问题由于这台物理机器正在消失的事实而变得更加复杂。因此,我需要在我的本地VM上运行这个开发环境。
下一步去哪里看有什么建议吗?
戴夫·史密斯
发布于 2016-02-20 08:34:24
在n.m.的建议下,我创建了一个新的VM,只安装了GHC和cabal,也就是说,没有安装完整的haskell-platform包。我不能,在这种环境下创建沙箱。命令cabal sandbox init失败,并出现无法识别沙盒命令的错误。
但是,在安装libpq-dev来修复安装用于客户端PostgreSQL的haskell库的问题之后,我能够正确地构建我的应用程序。
我确实做了另外一件不同的事情。我没有做一次cabal configure,然后自己安装所有缺失的依赖项,而是做了一次cabal install --only-dependencies,让cabal决定按什么顺序安装哪些依赖项。
因此,我现在有了这个应用程序的工作开发环境,但我还剩下一个问题。
Haskell平台安装做了什么导致了这个问题?为什么只安装编译器和cabal更好?好的,有两个问题。我什么时候可以安装整个Haskell平台软件包?
谢谢你的帮助!
戴夫
https://stackoverflow.com/questions/35512551
复制相似问题