首页 > 解决方案 > 在我的 Ubuntu 磁盘上安装了两个不同的 Haskell 平台

问题描述

我最近升级到 Ubuntu 18.04,擦除了旧磁盘上的所有内容,包括 Haskell 平台。然后我执行了以下操作以在我的磁盘上获取 Haskell 平台:

sudo apt-get install haskell-platform

(实际上,我认为在 Ubuntu 18.04 中你并不需要“get”这个词,但它仍然可以工作。所以我想我只是在终端中输入了这个 sudo apt install haskell-platform:)

然后我注意到我安装的版本是 8.0.2 版本,这并不是平台的当前版本。于是我访问了 www.haskell.org 并下载并安装了该平台的当前版本,即 8.4.2 版本。现在我有两个不同版本的 Haskell 平台,一个来自官方网站,另一个来自 Ubuntu 存储库。(Ubuntu 存储库中的那个有点过时了。)

“活动”的是我最后安装的那个,它是 8.4.2 版。因此,如果我输入ghci终端,我会得到 ghci 版本 8.4.2。如果我想要旧版本,那么我可以执行以下操作: /usr/bin/./ghci-8.0.2并启动稍旧版本的交互式解释器。

保留两个版本有什么害处吗?如何安全地从 Ubuntu 存储库中删除我安装的版本?如果我这样做,我是否必须从 Haskell 的官方网站 www.haskell.org/ 重新安装 Haskell 平台?我应该只保留它们吗?

标签: ubuntuhaskell

解决方案


在devops方面有一些经验,我建议你首先摆脱两者。即使它现在可以工作,但在升级时很可能会导致问题,因为这种安装绝对不是它应该工作的方式,因此不受支持。

一旦你重新开始,你可以通过你喜欢的方式获得最新的 Haskell 平台,或者只使用Haskell Stack,这是我每天都在使用的东西,我非常满意并且强烈支持。

除了作为 Haskell 版本管理器之外,Stack 在所谓的 LTS'es 中维护一组兼容的库,并通过将某个版本的 Haskell 和一组库固定到您的源代码来帮助您避免 Cabal Hell 并获得可重现的构建。因此,随着世界的发展,您仍然可以谨慎地控制项目使用的 GHC 和库版本,并且即使在开发几年后也可以以接近零的额外工作量来构建它。


推荐阅读