ubuntu - 在我的 Ubuntu 磁盘上安装了两个不同的 Haskell 平台

标签 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 平台?我应该只保留它们吗?

最佳答案

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

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

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

关于ubuntu - 在我的 Ubuntu 磁盘上安装了两个不同的 Haskell 平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50398974/

相关文章:

python - 将 .pyenv 文件夹移动到另一个分区,符号链接(symbolic link)

ubuntu - 如何授予本地主机权限?

haskell - 缩放和免费 monad 的困难

haskell - Cabal 无法在 OSX Lion 上安装 Idris 语言

linux - 在 Linux 中使用 GHC 的编译、依赖关系和可执行文件大小

ubuntu:如何将另一个文件添加到 PATH 变量

php - Nginx/php-fpm umask 设置

image - 无法从 cpp 代码 : `Segmentation fault (core dumped)` 运行 image_transport

haskell - 在 StateT 中组合多个状态

class - 在haskell中定义多类型容器类,麻烦绑定(bind)变量