我想得到一些关于让Haskell在Archlinux上工作的(最佳)方法的指导。
我所说的工作是指所有,就ghci
命令行工具而言,安装我没有的软件包 - 例如vector-space
,这是我对我的一个问题的回答所指的 - 以及任何其他可能需要的东西对于 Haskell 顽固的学习者。
Haskell上的Archlinux维基页面列出了三个(替代?)软件包,用于使Haskell在系统上工作,即ghc
,cabal-install
和stack
。我的系统上安装了第一个和第三个,但我想我一定在篡改时安装了后者(除非它是对ghc
的依赖关系)(可能与 Vim 作为 Haskell IDE 有关)。此外,我安装了大量的haskell-*
软件包(为什么?谁知道呢?作为一个学习者,我一定来过很多次,说呃,让我们试试这个!
- 每个软件包是否有任何优点和缺点("
cons
",啊哈)? - 它们可以在有/没有冲突的情况下使用吗?
- 它们中的任何一个是否使任何其他内容变得多余?
- 根据我所写的内容,还有什么我应该知道的,我似乎对它一无所知吗?
Arch Linux 选择在其软件包中提供动态链接的库往往会妨碍你开发 Haskell 代码。作为 Arch 用户,我的默认建议是根本不使用 Arch 的 Haskell 软件包,而是通过 ghcup 或 Stack 安装您需要的任何内容,从各自项目页面中的指导开始。
你基本上就在那里。请尝试以下操作:
-
ghci
: 如果你得到 Haskell REPL,那么它就可以工作了。 -
stack ghci
:你应该再次获得HaskellREPL奖。GHC 有很多版本,stack
与库一起管理这些版本。每当您使用新版本的GHC时,stack
都会下载它并为您创建本地安装。
stack
独立于您的 Linux 包管理器。麻烦的是,您的发行版将只有它集成的任何应用程序实际需要的Haskell库,一旦您走出这些库,您就会陷入依赖地狱,没有支持。所以我建议你避免你的发行版Haskell软件包。stack
做你需要的一切。
如果您从 Linux 包管理器安装了stack
,那么您可能需要卸载它并使用个人副本(即在您的 ~/.local 目录中)。然后,您可以随时说stack update
以检查您是否拥有最新版本。
一旦你有了stack
,通过说stack new my-project simple
创建一个项目。然后进入项目文件夹并开始编辑。如果您真的愿意,您可以只使用.hs
文件和 GHC,但这很痛苦;你会用stack
做得更好,即使你只是胡闹。
您还需要一个编辑器。语法突出显示等基本功能几乎在所有内容中都可用,但是一旦您通过了河内塔,您将想要更好的东西。我将 Atom 与 ide-haskell-ghcide 一起使用。这在后台使用Haskell语言服务器,所以你也需要安装它。我知道很多其他编辑器都有HLS支持,但我没有经验。