【发布时间】:2015-07-09 13:20:40
【问题描述】:
假设我想创建自己的名为 MyLib 的本地库,我的工作流程是:
$ cabal init
# # edit the ".cabal" file, set the "exposed-modules" as "MyLib"
# # edit "MyLib.hs" located in "src"
$ cabal sandbox init
$ cabal install
所以我的问题是
- 我的工作流程是否可以接受,或者可以更好吗?
- 现在我在 .cabal-sandbox/lib 中有一个已编译的库,我该如何使用它或我的另一个 haskell 项目中的
import MyLib?看来通过cabal install从hackage下载的包都存放在~/.cabal中,而我自己本地安装的包没有。 -
cabal build和cabal install有什么区别,看来运行cabal build后,我已经可以通过cabal repl运行我的lib了,那么cabal install做了哪些额外的工作呢?
【问题讨论】:
-
#1 我可以接受; #2
cabal install /home/me/mylib -
@josejuan 是这样的,如果我在
cabal sandbox init之后运行cabal install,软件包将安装到当前目录,而如果没有使用sandbox,它将被安装到.cabal并成为一个全球包? -
是的!如果您进入某个沙箱,那么您将安装到该沙箱中,如果没有,则安装到全局 cabal 包中:)(您见过 github.com/commercialhaskell/stack 吗?尽管我还是建议学习 cabal 方式)