问题描述
长话短说,我想要一些关于让 Haskell 在 Archlinux 上工作的(最佳)方式的指导。
工作我的意思是所有,就 ghci
命令行工具而言,安装我没有的软件包 - 例如 vector-space
,其中 {{3}我的一个问题是指 - 以及任何其他可能对 Haskell 顽固的学习者来说是必要的东西。
this answer 列出了使 Haskell 在系统上工作的三个(替代?)包,即 ghc
、cabal-install
和 stack
。我在我的系统上安装了第一个和第三个,但我想我必须稍后安装后者(除非它依赖于 ghc
)同时篡改(可能与 Archlinux wikipage on Haskell 相关)。此外,我安装了大量的 haskell-*
软件包(为什么?谁知道呢?作为一名学习者,我必须多次来此说呃,让我们试试这个!)。
解决方法
Arch Linux's choice 在它们的包中提供动态链接库往往会妨碍您。作为 Arch 用户,我的默认建议是根本不要使用 Arch 的 Haskell 软件包,而是通过 ghcup 或 Stack 安装您需要的任何东西,从各自项目页面中的指南开始。
,你基本上就在那里。请尝试以下操作:
-
ghci
:如果您获得 Haskell REPL,那么它就可以工作。 -
stack ghci
:您应该再次获得 Haskell REPL。 GHC 有很多版本,stack
与库一起管理这些版本。每当您使用新版本的 GHCstack
都会下载它并为您创建本地安装。
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,但我没有使用它们的经验。