长话短说,我想得到一些关于让Haskell在Archlinux上工作的(最好)方法的指导。
我所说的 work 指的是所有的,就ghci
命令行工具而言,安装我没有的包--比如vector-space
,我的一个问题所指的this answer--以及任何其他对Haskell顽固的学习者来说可能是必要的东西。
Archlinux wikipage on Haskell列出了三个(alternative?)使Haskell在系统上工作的软件包,即ghc
、cabal-install
和stack
。我已经在系统上安装了第一个和第三个,但我想我一定是后来安装了后者(除非它是ghc
的依赖项)(可能与Vim as a Haskell IDE有关)。此外,我安装了大量的haskell-*
软件包(为什么呢?谁知道呢?作为一个学习者,我一定有很多次说“嗯,让我们试试这个!”)。
- 关于这些软件包中的每一个都有什么优点和缺点(“
cons
“,啊哈)吗? - 它们是否都可以在有/无冲突的情况下使用?
- 它们中的任何一个会使其他任何一个变得多余吗?
- 还有什么是我应该知道的,而我似乎显然是无知的基础上,我已经写了?
2条答案
按热度按时间z4iuyo4d1#
Arch Linux选择在软件包中提供动态链接库,这会妨碍您开发Haskell代码。作为Arch的用户,我的默认建议是不要使用Arch的Haskell软件包,而是通过ghcup或Stack安装您需要的任何东西,从各自项目页面的指导开始。
plicqrtu2#
你基本上已经做到了。试试下面的方法:
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支持,但是我没有使用它们的经验。