我有下面的阴谋地狱的例子:
(使用ghc-7.8.3构建于x86_64 GNU/Linux上的源代码,用户安装: True在..cabal/config中)
1)在某一时间,安装了变压器-0.4.0.0(在用户空间中,阴影(?)变形金刚-来自全球空间的0.3
2)后来,几个图书馆挑选了变压器-0.4
3)然后,我安装提示,这取决于ghc,它依赖于变压器-0.3,这是不能改变的,因为ghc是硬连线。
结果:我不能在一个项目中使用来自2)的库和提示。
作为一种解决方案,我将constraint: transformers installed放在. .cabal/config中,并进行重建。是否有更好的方法来处理这种情况--或者一开始就避免它?
发布于 2014-08-06 12:56:18
有没有更好的方法来处理这种情况。
不,你的做法是明智的。
还是一开始就避开它?
很棘手。大多数人不依赖于ghc来构建东西,所以对他们来说升级transformers等是有意义的。因此,您的约束不是一个合适的默认设置。
正如泽塔所写的:沙箱可以帮上忙。如果您在(2)中为您的安装使用了沙箱,对于尝试同时使用提示和(2)的其他沙箱,那么它将简单地为您正在构建的任何内容构建这些依赖关系。
这是以牺牲在你所做的各种事情之间不共享任何空间或构建时间为代价的。
https://stackoverflow.com/questions/25160445
复制相似问题