为什么GHC运行7.10.3版本而不是8.6.2版本?

时间:2018-11-20 06:17:22

标签: haskell ghc

我是Haskell的新手(例如,尚未编写一行Haskell代码)。我最近通过ppa:hvr / ghc在Ubuntu 16.04上下载了GHC版本8.6.2。但是,当我跑步

$ ghc --version

我明白了

The Glorious Glasgow Haskell Compilation System, version 7.10.3

我可以使用命令运行8.6.2版本

$ /opt/ghc/bin/ghc-8.6.2 --version

所以我认为这是正常的行为。但是,我不明白为什么它会自动运行7.10.3版。另外,有什么方法可以更改它,以便ghc命令将自动运行安装的最新版本?

我确实尝试过搜索答案,但找不到任何答案。任何解释/帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

您似乎对ghc,系统管理或两者都有误解。

GHC作为单独的编译器版本提供-就像gcc或我能想到的任何其他编译器一样。如果您运行ghc 8.6.2二进制文件,则它将报告版本8.6.2。如果像运行$ ghc --version一样运行某些未知的ghc并要求其提供版本,那么您将在路径中看到第一个ghc二进制文件的结果。您甚至可以使用which ghcls -l $(which ghc)找出哪个二进制文件。

因此,您似乎已安装了多个GHC二进制文件。同样,这与您对该系统的管理有关。我建议你:

  1. 从apt等中删除所有以前安装的GHC二进制文件
  2. 设置一个路径以包含刚安装的HVR PPA ghc。例如,如果您使用bash,请编辑$HOME/.bashrc并将PATH=/opt/ghc/bin:$PATH添加到文件末尾。