我最近买了一台笔记本电脑并在上面安装了Xubuntu 13.10。今天,我刚刚重新安装它,因为我无法让GHC继续工作。我做了apt-get更新和升级,以及安装linux-headers-generic并安装bcmwl-kernel-source。
这就是我的进展:
从GHC下载的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&gt; 但是不能错误地做到这一点。据我所知,这个库本身带有GHC,但我下载并安装以防万一使用: sudo apt-get install libghc-mtl-dev
但它仍然没有奏效。我需要帮助才能完成这项工作,或者通常设置haskell。
答案 0 :(得分:0)
作为Hoogle will tell you,此模块不在基础包中,而是在mtl
中。啊,我看到你已经发现了自己。问题是,需要使用GHC 注册包。如果您apt-get
安装了一个软件包,这与手动安装的GHC无关。
一般来说,获取新Haskell库包的方法是
cabal install mtl
...当然你需要阴谋。
真的,你应该只安装Haskell platform而不是GHC;当前版本中有ghc-7.6.3。
在?ubuntu 13.10中,您actually get that version就像
一样简单sudo apt-get install haskell-platform
根本不需要手工安装任何东西。
答案 1 :(得分:0)
使用您的发行版软件包管理器来安装GHC(或整个Haskell平台,如果您需要), 我怀疑GHC 7.6.3目前处于适应能力状态。而不是使用cabal(-install),您应该使用包管理器来安装所需的各种Haskell包。
但是,如果你真的真的想手动安装(也许是因为你想要最新版本的GHC 7.8.1),这就是我在新机器上所做的事情。警告:除非您能够并且愿意清理可能的混乱,否则不要这样做!
使用distro的软件包管理器安装Haskell平台。如果它是旧版本,你不在乎。您只是这样做以获得任何GHC依赖关系以及cabal-install。
现在安装您想要的GHC版本。
sudo mkdir /usr/local/ghc-X.X.X
./ configure --prefix = / usr / local / ghc-X.X.X
sudo make install
将此GHC添加到您的路径中!
可选:使用您的软件包管理器卸载GHC(以便在将来的更新中不会升级)。
在您完成此操作后,当您升级到新版本的GHC时,您只需要执行第2步。