2

我最近买了一台笔记本电脑并在上面安装了 Xubuntu 13.10。今天,我重新安装了它,因为我无法让 GHC 运行它。我做了 apt-get 更新和升级,以及安装 linux-headers-generic 和安装 bcmwl-kernel-source。

我就是这样进行的:

从以下网址下载 GHC: https ://www.haskell.org/ghc/download_ghc_7_6_3#x86_64linux

tar xjf ghc-7.6.3......
cd ghc-7.6.3
./configure

这里他不配置,所以我要下载libgmp.so.3并安装

sudo make install

GHC 安装正确。

现在我尝试用 ghci 运行它并得到一个缺少 libgmp.so 的错误。我也下载并安装。都使用 ubuntu 软件中心和来自 pkgs.com

现在我运行 ghci。它工作正常。我尝试:

import Control.Monad.Error

我真正的问题从这里开始:

<no location info>:
    Could not find module `Control.Monad.Error'
    Perhaps you meant
      Control.Monad.Fix (from base)
      Control.Monad.ST (from base)
      Control.Monad.Zip (from base)

我不知道为什么会这样。我可以轻松做到:显然

:m +Control.Monad

这给出了: Prelude Control.Monad> 但不能出错。据我了解,这个库本身带有 GHC,但我下载并安装它以防万一使用: sudo apt-get install libghc-mtl-dev

但它仍然没有工作。我需要帮助来完成这项工作,或者通常设置haskell。

4

2 回答 2

0

使用发行版的包管理器安装 GHC(或整个 Haskell 平台,如果需要)要容易得多。我怀疑 GHC 7.6.3 现在处于 aptitude 上。而不是使用 cabal(-install),你应该使用你的包管理器来安装你想要的各种 Haskell 包。

但是,如果你真的很想手动安装(也许是因为你想要最新版本的 GHC 7.8.1),这就是我在新机器上所做的。警告:除非您有能力并且愿意清理可能出现的烂摊子,否则不要这样做!

  1. 使用发行版的包管理器来安装 Haskell 平台。你不在乎它是否是旧版本。您这样做只是为了获取任何 GHC 依赖项以及 cabal-install。

  2. 现在安装您想要的 GHC 版本。

    sudo mkdir /usr/local/ghc-XXX

    ./configure --prefix=/usr/local/ghc-XXX

    须藤使安装

    将此 GHC 添加到您的 PATH 中!

  3. 可选:使用你的包管理器卸载 GHC(这样它就不会在未来的更新中升级)。

完成一次后,当您升级到新版本的 GHC 时,您只需要执行第 2 步。

于 2014-04-11T11:12:35.257 回答
0

正如Hoogle 将告诉您的,此模块不在基本包中,而是在mtl. 啊,我看你自己已经发现了。问题是,一个包需要在GHC注册。如果你apt-get安装一个包,这与手动安装的 GHC 无关。

一般来说,获得一个新的 Haskell 库包的方法是

cabal install mtl

...你当然需要阴谋集团。

真的,你应该只安装Haskell 平台而不是单独安装 GHC;当前版本中包含 ghc-7.6.3。

在 ?ubuntu 13.10 中,您实际上会得到该版本,就像

sudo apt-get install haskell-platform

根本不需要手动安装任何东西。

于 2014-04-11T11:09:21.797 回答