我希望建立一个Haskell教程程序的环境,因为我想尝试学习这门语言。所以我了解了Cabal并已经在我的电脑上安装了它,因为有时我会更新pandoc。我遵循了一些教程, 它们说明你应该运行以下命令:
为了设置环境。但是,如果我尝试这样做,我会收到以下消息:
$ 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
文件?这让我感到困惑。我需要采取哪些步骤来获得一个环境,在该环境中我可以简单地安装软件包,然后使用该环境运行任何我选择的教程代码?
这个是另一个建议采用所描述的工作流程的教程。我似乎缺少了某些东西。
(我认为,cabal沙盒与python虚拟环境相当,它们在不需要系统范围内安装软件包的情况下非常有用,而是可以将它们安装在目录中,然后使用该环境来运行程序。)
cabal sandbox init
。这不是和cabal init
一样吗?那个教程上的步骤没有提到cabal init
- 我试试看!哈,成功了!你能把这变成一个答案吗? - Zelphir Kaltstahlcabal --require-sandbox install <pkg-name>
命令将单个软件包安装到沙盒中(假设您在正确的目录下)。然后,您可以使用cabal --require-sandbox repl
命令访问这些软件包而无需 cabal 文件。--require-sandbox
部分可能并不总是需要,但如果您没有 .cabal 文件,则这是最安全的选择。显然,--dependencies
无法在没有 .cabal 文件的情况下工作 - 它应该查找哪些依赖项呢?我认为这需要一个相当新的 cabal 版本。您不一定需要 .cabal 文件 - 只是拥有一个会更加方便。 - user2407038