我想为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相媲美,在这方面很有用,一个人不需要在系统范围内安装软件包,但可以将它们安装在一个目录中,然后使用该环境来运行程序。)
答案 0 :(得分:4)
您需要在其中包含一个cabal文件,其中描述了您的项目名称,包依赖项,许可证等。可以使用cabal init
生成一个cabal文件,然后是一系列问题回答。
创建初始cabal配置文件后,您可以进入包目录并使用上述命令在其中创建沙箱。
您可能也对Stack感兴趣,docs explain that here是开发Haskell项目的另一种替代方案(更好,如果您要问我:))。