在Archlinux上设置Haskell的建议方法是什么?
长话短说,我想要一些关于Haskell在Archlinux上工作的(最佳)方法的指导 我所说的工作是指所有的,就ghci命令行工具而言,安装我没有的软件包——比如,我的问题所指的软件包——以及Haskell ostinate学习者可能需要的任何其他东西 列出了使Haskell在系统上工作的三个(可选?)软件包,即在Archlinux上设置Haskell的建议方法是什么?,haskell,ghc,cabal,archlinux,haskell-stack,Haskell,Ghc,Cabal,Archlinux,Haskell Stack,长话短说,我想要一些关于Haskell在Archlinux上工作的(最佳)方法的指导 我所说的工作是指所有的,就ghci命令行工具而言,安装我没有的软件包——比如,我的问题所指的软件包——以及Haskell ostinate学习者可能需要的任何其他东西 列出了使Haskell在系统上工作的三个(可选?)软件包,即ghc,cabal安装,以及stack。我在我的系统上安装了第一个和第三个,但我想我一定是在篡改时安装了后者(除非它依赖于ghc)。此外,我还安装了大量的haskell-*软件包(为什么
ghc
,cabal安装
,以及stack
。我在我的系统上安装了第一个和第三个,但我想我一定是在篡改时安装了后者(除非它依赖于ghc
)。此外,我还安装了大量的haskell-*
软件包(为什么?谁知道呢?作为一名学习者,我肯定已经多次提到过,让我们试试这个!)
- 每种方案都有利弊吗
- 它们是否都可以与冲突一起使用
- 它们中有没有任何一个是多余的
- 根据我所写的,还有什么我似乎不知道的地方吗
:如果您得到Haskell REPL,它就会工作ghci
:您应该再次获得Haskell REPL。GHC有很多版本,stack ghci
与库一起管理这些版本。每当您使用新版本的GHCstack
时,它都会下载并为您创建本地安装stack
堆栈
独立于Linux软件包管理器。问题是,您的发行版只有它集成的任何应用程序实际需要的Haskell库,一旦您走出这些库,您就陷入了依赖地狱,没有任何支持。因此,我建议您避免使用发行版Haskell软件包<代码>堆栈完成所有需要的操作
如果从Linux软件包管理器安装了stack
,则可能需要卸载它并使用个人副本(即~/.local目录中的副本)。然后,您可以始终说堆栈更新
,检查您是否拥有最新版本
一旦stack
开始,通过说stack new my project simple
创建一个项目。然后进入项目文件夹并开始编辑。如果你真的愿意,你可以只使用.hs
文件和GHC,但这很痛苦;使用堆栈
,即使您只是在胡闹,也会做得更好
你还需要一个编辑。语法高亮显示等基本功能几乎可以在任何地方使用,但一旦你通过河内塔,你就会想要更好的东西。我用原子和原子。这使用了引擎盖下的,所以你也需要安装它。我知道很多其他编辑器都支持HLS,但我没有使用它们的经验。
ghc
只是编译器cabal
是一个构建工具,stack
是围绕cabal
构建的工具,其中包括一个策划的包存储库。它们并不是相互排斥的。@chepner,从你的评论中,我可以推断出阴谋集团
是堆栈
的依赖关系,但我在我的系统上安装了后者,而不是前者。我遗漏了什么吗?许多发行版的标准Haskell包通常有点旧。如果您对不使用标准软件包管理器没有意见,那么也许可以让ghcup尝试一下@Enlico堆栈,它取决于Cabal(库),而不是Cabal安装(命令行工具,通常被称为“Cabal”)。有关更多详细信息,请参阅。我将下载它并创建本地安装。我想这是几分钟前我第一次运行stack ghci
时发生的下载。FWIW,我看到ghci
告诉我ghci,版本8.10.3
,而stack ghci
告诉8.8.4
(stack--version
是2.5.1),所以看起来Arch下载的编译器版本比stack
要更新。stack使用列出库版本的“解析器”文件,编译器等。默认情况下,它使用最新的长期支持解析器。因此,您的建议是使用pacman
来安装stack
或任何满足相同角色的东西,然后使用它来安装haskell软件包。也许我也应该卸载所有haskell-*
软件包?根据您在对我的问题的评论中链接的答案(而且因为它看起来像是stack
下载了比我用pacman
安装的版本更旧的ghci
),我会选择cabal安装
,而不是stack
。与此相关,为什么您编写ghcup/Cabal或Stack而不是Cabal install或Stack?我想我还是遗漏了一些东西。[1/2]@Enlico(1)我的建议是根本不使用pacman
,而是通过项目页面中的说明获取工具。即使是最新版本也会带来大量的haskell-*
包。(2) 是的,我建议您删除haskell-*
包(和ghc
,stack
,cabal安装
,等等)。您通过pacman
[2/2]@Enlico(3)我说的是“ghcup[…]或stack”,因为使用这两个包中的任何一个,您都可以使用ghc和构建工具快速建立一个工作的haskell环境。与Stack不同,cabal install不为您管理GHC版本,因此alt