unix - 如何安装 GHC 7.8.1 并为其分配不同的命令?

标签 unix haskell compiler-construction build ghc

我想安装 GHC 7.8.1,但想为其分配不同的命令,以免与 7.6.3 发生冲突。例如:

  • runghcrunghc7.8.1
  • ghcighci7.8.1
  • 等等...

或类似的。 (对于键入的孔,ghci 将是最重要的。) 基本上,我希望能够使用 GHC 7.8 和 7.6,所以如果有更直接的方法来做到这一点请告诉我(A-B 问题。)

注意:Ubuntu 13.10

最佳答案

因为您使用的是类 UNIX 系统 (Ubuntu),所以您可以执行以下操作:

  1. 选择您喜欢安装 ghc 的文件夹(例如,在主目录的子文件夹中,如 $HOME/ghc7.8.1 或在 /opt 的子文件夹中,如 /opt/ghc7.8.1 – 如果您是计算机的唯一用户,我更喜欢后者,如果不是这种情况,我更喜欢第一个)。请参阅this wikipedia article有关 unix 目录结构的说明。
  2. 将源代码下载到该文件夹​​中并按照 installation instructions 进行操作:

  3. 安装后,查找包含所创建的二进制文件的文件夹(如果您没有使用 bindir 的其他名称,则该文件夹将被称为 bin)。让我们假设这个文件夹是 /opt/ghc7.8.1/bin

现在你有两种可能性:

创建 symlinks 的解决方案:$PATH 中的文件夹中创建符号链接(symbolic link),指向创建的二进制文件(例如 /usr/local/bin$HOME/bin – 如果您是计算机上的唯一用户,我会使用第一个,如果您不是,我会使用第二个)。因此你必须使用命令行工具ln 。例如:

sudo ln -s -T /opt/ghc7.8.1/bin/runghc /usr/local/bin/runghc7.8.1

此命令之后有一个文件 /usr/local/bin/runghc7.8.1 指向二进制文件 /opt/ghc7.8.1/bin/runghc。通过输入 runghc7.8.1 执行 /usr/local/bin/runghc7.8.1 现在将执行在 /opt 中创建的 runghc 二进制文件 (注意:如果您在 $HOME/bin 中创建符号链接(symbolic link),则不需要 sudo - 它只是需要的,因为 root 可以在 /usr 下创建文件)

解决方案 bash aliases :写入您的$HOME/.bash_aliases(@Others:您也可以选择$HOME/.bashrc$HOME/.profile 取决于您的系统/偏好)以下行:

alias runghc7.8.1='/opt/ghc7.8.1/bin/runghc'

现在在终端中输入 runghc7.8.1 是输入 /opt/ghc7.8.1/bin/runghc 的快捷方式(别名),并将执行此二进制文件。

请注意,使用此解决方案,当您在终端中输入 runghc7.8.1 时,它就会起作用。在某些情况下,它不起作用(例如在脚本中调用 runghc7.8.1)。

关于unix - 如何安装 GHC 7.8.1 并为其分配不同的命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23001192/

相关文章:

Haskell - 是什么让 'main' 独一无二?

haskell - 为什么要解析错误?缩进?

在 Visual Studio 2012 Express 中将 C 代码编译为 .bin 文件

linux - Korn shell 获取最新的文件匹配模式

c - Posix evtsuspend 等效项

java - 每当我从代码执行终端命令时,它都会给出 "cannot run program"错误=2 没有这样的文件或目录

haskell - 我的 isElement 函数(二叉树)有什么问题?

c - 如何为每个 posix 操作系统编译 GnuTLS

c - build 一台扫描仪。识别代币

c - write(fd, buf, count)返回0怎么办?