在Windows上安装Haskell,配置cabal

4
我正在按照https://www.haskell.org/platform/上的说明,在Windows上安装Haskell。看到第三步,它说:修改您的cabal配置文件(您可以运行“cabal user-config init”来验证位置),以包含以下行:
extra-prog-path: C:\Program Files\Haskell Platform\8.0.2\msys\usr\bin
extra-lib-dirs: C:\Program Files\Haskell Platform\8.0.2\mingw\lib
extra-include-dirs: C:\Program Files\Haskell Platform\8.0.2\mingw\include

但是自动生成的配置文件包含了例如:

extra-prog-path: C:\Users\w\AppData\Roaming\cabal\bin

这是建议变量之一的不同值。

这是有意为之吗?

我应该怎么做,将步骤3中的行粘贴到文件的开头、结尾、覆盖现有行还是跳过步骤3?


“我该怎么办”并不是一个问题 - 只有您知道您的环境看起来像什么,是否适合保留其中一个或两个路径(extra-prog-path可以是由逗号分隔的路径列表)。如果替换现有路径或不替换它们或包含两者,会出现什么问题?两个注意事项; 在路径中使用空格可能会导致以后出现问题; 为什么不使用stack(它是下载页面上的第二个选项)? - user2407038
@user2407038 我不知道在这里使用什么是合适的,因为我不熟悉 Haskell 环境。目前我先放一下,尝试使用 Stack(似乎已经自动安装了),因为谷歌搜索说它更好(这是真的吗?)。现在执行 stack install hfmt 已经更新了二十分钟的软件包索引了,这是正常的吗? - rwallace
1
但是,Stack也不熟悉您的环境 - 我不知道C:\Users\w\AppData\Roaming\cabal\bin目录的内容,也不知道它是否存在。是的,第一次获取软件包索引需要很长时间(虽然我从未花费过20分钟,但这当然取决于您的互联网连接速度),但这对于没有stack的普通cabal并没有什么不同。为确保一切顺利,您可以使用-v(详细程度)运行stack - 它将打印下载进度。 - user2407038
@user2407038 好的,这是从零开始安装Haskell,所以会产生干净的安装。好的,如果Stack第一次获取包索引需要很长时间,那没问题,只是想确保它没有挂起或其他问题。谢谢! - rwallace
相关问题:https://stackoverflow.com/q/42725607/2157640 - Palec
这个问题是关于Haskell平台安装程序的。干净的安装,没有修改 - 环境已经被安装程序充分定义。我非常确定应该使用原始的extra-prog-path并添加新的extra-prog-path,@user2407038。对于新手来说,Windows的Haskell平台安装说明很难跟随,因为不熟悉Cabal的用户配置语法。 - Palec
2个回答

1

我有cabal-install版本2.4.1.0。如https://www.haskell.org/cabal/users-guide/nix-local-build.html所建议,与https://www.haskell.org/platform/windows.html上的安装说明相反,我使用了一个单独的extra-prog-path行,其中包含逗号分隔的路径列表:

extra-prog-path: C:\Users\...\AppData\Roaming\cabal\bin,C:\Program Files\Haskell Platform\8.6.5\msys\usr\bin

原因:这样,至少命令cabal user-config diff可以得出合理的结果。

C:\>cabal user-config diff
+ extra-include-dirs: C:\Program Files\Haskell Platform\8.6.5\mingw\include
+ extra-lib-dirs: C:\Program Files\Haskell Platform\8.6.5\mingw\lib
- extra-prog-path: C:\Users\...\AppData\Roaming\cabal\bin
+ extra-prog-path: C:\Users\...\Roaming\cabal\bin,C:\Program Files\Haskell Platform\8.6.5\msys\usr\bin
+ logs-dir: C:\Users\...\AppData\Roaming\cabal\logs

如果我按照安装说明并使用两个extra-prog-path行,则cabal user-config diff将忽略第二个。但我不确定这是否重要。

1
你不需要覆盖现有的行。你可以有多个extra-prog-path条目,它们都会被使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接