Linux Xubuntu 13.10上的Haskell 7.6.3:Can';无法导入Monad.Control.Error

Linux Xubuntu 13.10上的Haskell 7.6.3:Can';无法导入Monad.Control.Error,linux,haskell,controls,monads,xubuntu,Linux,Haskell,Controls,Monads,Xubuntu,我最近买了一台笔记本电脑,并在上面安装了Xubuntu 13.10。今天,我重新安装了它,因为我无法让GHC处理它。我没有得到更新和升级,以及安装linux头通用和安装bcmwl内核源代码 我是这样继续的: 从以下网址下载GHC: 这里他没有配置,所以我必须下载libgmp.so.3并安装它 sudo make install GHC安装正确 现在我试着用ghci运行它,得到了一个缺少libgmp.so的错误。 我也下载并安装了它。使用ubuntu软件中心和pkgs.com 现在我经营ghc

我最近买了一台笔记本电脑,并在上面安装了Xubuntu 13.10。今天,我重新安装了它,因为我无法让GHC处理它。我没有得到更新和升级,以及安装linux头通用和安装bcmwl内核源代码

我是这样继续的:

从以下网址下载GHC:

这里他没有配置,所以我必须下载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)
其中: 前奏曲控制。单子> 但不能错误地去做。据我所知,该库自带GHC,但我下载并安装了它,以防使用: sudo apt get安装libghc mtl dev

但它仍然不起作用。我需要帮助来完成此工作,或者通常设置haskell。

因为此模块不在基本包中,而是在
mtl
中。啊,我看你自己已经发现了。问题是,一个包需要向GHC注册。如果您
apt获取
安装软件包,这与手动安装的GHC无关

通常,获取新Haskell库包的方法是

cabal install mtl
…当然你需要阴谋集团

实际上,您应该只安装了,而不是单独安装GHC;当前版本中包含ghc-7.6.3

在Ubuntu13.10中,您将

sudo apt-get install haskell-platform
根本不需要手动安装任何东西。

使用发行版的软件包管理器安装GHC(或者整个Haskell平台,如果您需要的话)要容易得多。我怀疑GHC 7.6.3现在已经具备了能力。您应该使用包管理器来安装所需的各种Haskell包,而不是使用cabal(-install)

但是,如果您真的想要手动安装(可能是因为您想要最新版本的GHC 7.8.1),下面是我在新机器上所做的。警告:除非你有能力并且愿意清理可能的混乱,否则不要这样做

  • 使用发行版的包管理器安装Haskell平台。你不在乎它是否是旧版本。你这样做只是为了得到任何GHC依赖加上阴谋集团的安装

  • 现在安装所需的GHC版本

    sudo mkdir/usr/local/ghc-X.X.X

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

    sudo制作安装

    将此GHC添加到您的路径中

  • 可选:使用软件包管理器卸载GHC(以便在将来的更新中不会升级)


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

    谢谢,这很有帮助。我是一个哈斯克尔文盲,被要求把它安装在笔记本电脑上,因此我对阴谋集团一无所知。谢谢你的提示。正如我在这篇文章中对不同答案的评论中提到的,我是哈斯克尔文盲,只是被要求安装它。其他人的回答是使用阴谋集团-这解决了问题。然而,如果将来我不得不对它做任何事情,我可能会听从你的建议:)
    cabal install mtl
    
    sudo apt-get install haskell-platform