如何创建Cabal Sandbox

时间:2016-01-24 00:04:32

标签: haskell virtualenv sandbox cabal

我想为Haskell构建一个教程的环境,因为我想尝试学习这门语言。所以我读到了Cabal,并且已经在我的机器上了,因为我有时更新了pandoc。我跟着一些tutorials,其中说明你应该运行:

$ cabal sandbox init
$ cabal install --only-dependencies
$ cabal build

设置环境。但是,如果我这样做,我会收到以下消息:

$ cabal sandbox init
Writing a default package environment file to
/home/xiaolong/development/Haskell/cabal.sandbox.config
Using an existing sandbox located at
/home/xiaolong/development/Haskell/.cabal-sandbox

ls命令的输出)

$ ls
cabal.sandbox.config

然后:

$ cabal install --only-dependencies
cabal: Error reading local package.
Couldn't find .cabal file in: .

咦?突然需要一个.cabal文件?这对我来说很困惑。我需要采取哪些步骤才能获得一个环境,我可以在其中安装软件包,然后使用该环境运行我选择的任何教程的代码?

This是建议所描述的工作流程的另一个教程。我缺少了一些东西。

(我的印象是,cabal沙箱可以与python virtualenvs相媲美,在这方面很有用,一个人不需要在系统范围内安装软件包,但可以将它们安装在一个目录中,然后使用该环境来运行程序。)

1 个答案:

答案 0 :(得分:4)

您需要在其中包含一个cabal文件,其中描述了您的项目名称,包依赖项,许可证等。可以使用cabal init生成一个cabal文件,然后是一系列问题回答。

创建初始cabal配置文件后,您可以进入包目录并使用上述命令在其中创建沙箱。

您可能也对Stack感兴趣,docs explain that here是开发Haskell项目的另一种替代方案(更好,如果您要问我:))。