在 Archlinux 上设置 Haskell 的建议方法是什么?

问题描述

长话短说,我想要一些关于让 Haskell 在 Archlinux 上工作的(最佳)方式的指导。

工作我的意思是所有,就 ghci 命令行工具而言,安装我没有的软件包 - 例如 vector-space,其中 {{3}我的一个问题是指 - 以及任何其他可能对 Haskell 顽固的学习者来说是必要的东西。

this answer 列出了使 Haskell 在系统上工作的三个(替代?)包,即 ghccabal-installstack。我在我的系统上安装了第一个和第三个,但我想我必须稍后安装后者(除非它依赖于 ghc)同时篡改(可能与 Archlinux wikipage on Haskell 相关)。此外,我安装了大量的 haskell-* 软件包(为什么?谁知道呢?作为一名学习者,我必须多次来此说呃,让我们试试这个!)。

  • 每个软件包有什么优点和缺点吗?
  • 它们都可以在有/没有冲突的情况下使用吗?
  • 它们中的任何一个是否使任何其他多余?
  • 还有什么是我应该注意的,但根据我所写的内容,我似乎对此一无所知?

解决方法

如果您希望开发 Haskell 代码,

Arch Linux's choice 在它们的包中提供动态链接库往往会妨碍您。作为 Arch 用户,我的默认建议是根本不要使用 Arch 的 Haskell 软件包,而是通过 ghcupStack 安装您需要的任何东西,从各自项目页面中的指南开始。

,

你基本上就在那里。请尝试以下操作:

  • ghci:如果您获得 Haskell REPL,那么它就可以工作。

  • stack ghci:您应该再次获得 Haskell REPL。 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 Language Server,因此您也需要安装它。我知道很多其他编辑器都支持 HLS,但我没有使用它们的经验。