在 npm 中,依赖项安装在node_modules
相对于依赖包目录的目录中。每个包都将其依赖项存储在自身内部。
然而,对于 Cabal,安装包总是全局安装(即在 中~/.cabal
),这是噩梦和眼泪的完美配方,因为不同版本的包会相互冲突,一切都会失败和出错。
我想在本地安装 Cabal 包,即在我自己的包的子目录中,而不是全局安装。这些包的所有依赖项都会做同样的事情。我的包的目录树示例如下所示:
my_package/
dependencies/
json/
dependencies/
foo/
etc...
bar/
etc...
mtl/
etc...
my_package.cabal
src/
Main.hs
这可能吗,如果可以,怎么做?