2014-04-11 27 views
1

我最近買了一臺筆記本電腦,並安裝了Xubuntu 13.10。今天,我剛剛重新安裝它,因爲我無法讓GHC開始工作。我做了apt-get更新和升級,以及安裝linux-headers-generic並安裝了bcmwl-kernel-source。Xubuntu 13.10上的Haskell 7.6.3:無法導入Monad.Control.Error

這是我是如何進行的:

下載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 

其中給出: 前奏曲Control.Monad> 但不能與錯誤做。據我瞭解,這個庫自帶GHC,但我下載並安裝,以防萬一使用: sudo apt-get install libghc -mtl-dev

但它仍然無法正常工作。我需要幫助完成這項工作,或者一般情況下設置haskell。

回答

0

由於Hoogle will tell you,該模塊不在基本包中,而是在mtl中。啊,我知道你已經發現了你自己。事情是,一個包需要是與GHC註冊。如果你安裝了一個軟件包apt-get,這與手動安裝的GHC無關。

一般得到一個新的哈斯克爾庫包的方式是

cabal install mtl 

...爲你當然需要陰謀。

真的,你應該只安裝Haskell platform而不是單獨的GHC;目前的版本有ghc-7.6.3。

在?的Ubuntu 13.10,你會actually get that version那樣簡單

sudo apt-get install haskell-platform 

無需用手在所有安裝任何東西。

+0

謝謝你,這有助於。我是一個Haskell文盲的人,被要求將它安裝在筆記本電腦上,因此我不瞭解cabal。 – user1455380

0

這是更容易使用您的發行版的包管理器安裝GHC(或整個Haskell平臺,如果你想要的話)。我懷疑現在GHC 7.6.3是否具備天賦。而不是使用cabal(-install),你應該使用你的軟件包管理器來安裝你想要的各種Haskell軟件包。但是,如果你確實真的想要手動安裝(也許是因爲你想要最新版本的GHC 7.8.1),那麼我在一臺新機器上做了什麼。警告:除非你能夠並願意清理可能的混亂,否則不要這樣做!

  1. 使用發行版的軟件包管理器來安裝Haskell平臺。你不在乎它是否是舊版本。你只是這樣做以獲得任何GHC依賴和cabal-install。

  2. 現在安裝所需的GHC版本。

    須藤的mkdir在/ usr /本地/ GHC-XXX

    的./configure --prefix =在/ usr /本地/ GHC-XXX

    須藤使安裝

    這GHC添加到PATH !

  3. 可選:使用您的軟件包管理器卸載GHC(以便在將來的更新中不會升級)。

你做了一次之後,當你升級到GHC的新版本,你只需要執行步驟2

+0

感謝您的提示。正如我在本文中對不同答案的評論中所提到的,我是Haskell文盲,只是被要求安裝它。其他人的答案是使用cabal - 解決了問題。但是,如果我將來需要做任何事情,我可能會遵循你的建議:) – user1455380