我想为Haskell的教程程序构建一个环境,因为我想尝试和学习该语言。所以我阅读了Cabal,并且已经在我的机器上使用了它,因为我有时更新了pandoc。我跟着一些tutorials,你应该运行的状态:如何创建一个Cabal Sandbox
$ 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 sandboxes可以和python virtualenvs相媲美,这种方式非常有用,它不需要在系统范围内安装软件包,而是可以将它们安装到一个目录中,然后使用它)
你需要在里面有一个cabal文件。您可以通过发出'cabal init'命令并按照以下步骤生成一个。您可以在cabal文件的名为'build-depend'的字段中列出您的程序包依赖项。 – Sibi
@Sibi但我已经运行了'cabal sandbox init'。这与'cabal init'不一样吗?该教程中的步骤没有提及'cabal init' - 我会试试!哈,那工作!你能做出这个答案吗? – Zelphir
您可以将'cabal --require-sandbox install'安装到沙箱中(假设您位于正确的目录中)。然后,您可以使用'cabal --require-sandbox repl'访问这些文件而不使用cabal文件。 '--require-sandbox'部分可能并不总是需要的,但如果你没有.cabal文件,这是你最安全的选择。显然'--dependencies' *不能在没有.cabal文件的情况下工作 - 它应该寻找哪些依赖关系?我认为这需要一个相当新的cabal版本。你不需要* .cabal文件 - 有一个更容易。 –
user2407038