2013-11-15 117 views
0

我是Haskell的新手,試圖編寫一個編譯器構建類的程序。cabal安裝bnfc缺失目錄

我安裝的是哈斯克爾平臺包在我的Ubuntu 13.10,然後(不帶安裝哈斯克爾平臺後什麼亂搞)試圖運行下面的命令:

$ sudo cabal install bnfc 

與結果:

Resolving dependencies... 
Configuring BNFC-2.6.0.3... 
cabal: The following installed packages are broken because other packages they 
depend on are missing. These broken packages must be rebuilt before they can 
be used. 
package process-1.1.0.2 is broken due to missing package 
directory-1.2.0.1-508733a890139bbedb8aa76468431462 
Failed to install BNFC-2.6.0.3 
cabal: Error: some packages failed to install: 
BNFC-2.6.0.3 failed during the configure step. The exception was: 
ExitFailure 1 

當我嘗試安裝軟件包目錄時說它已經安裝了軟件包。 任何人都可以幫忙嗎?

+0

您是否嘗試過'cabal update'? –

+0

是的,我試過 – niczka

+0

避免在'cabal'中使用'sudo'。通過'cabal install'來重建'process'和'directory'。 – 2013-11-15 18:36:41

回答

1

我也使用Ubuntu 13.10與haskell平臺包,併爲我安裝bnfc。

有您可以檢查一些東西....

  1. 不要使用帶有陰謀須藤安裝(默認爲小集團安裝包在自己的主目錄,使用sudo可能通過會造成麻煩提供錯誤的文件所有權,或者嘗試將文件放入/ root,甚至覆蓋/ usr內容)

  2. 重命名〜/ .cabal /和〜/ .ghc /,並通過運行「cabal update」 (您可能需要在移動後從移動的位置重新添加〜/ .cabal/bin/cabal)。這些包含已安裝的軟件包和它們的信息....因爲你有一個新的香草安裝,這些基本上應該是空的,儘管它們中的元信息可能已經損壞。 (如果由於某種原因,這會讓事情變得更糟,您可以隨時恢復原始目錄....如果它解決了問題,則可以刪除原始.cabal和.ghc)

  3. 您可以獲得更多關於原因的信息一包沒有做安裝以下

    陰謀解壓BNFC#這將下載並解壓縮源代碼CD BNFC-2.6.0.3#進入新創建的源目錄 陰謀配置#此檢查所有系統的依賴是否符合 cabal build #This構建包 cabal install #This安裝包在〜/ .cabal/

(您可能需要遍歷到另一個包,如果不滿足相關性)

我覺得2.可以解決你的問題,因爲你顯示錯誤消息意味着構建過程是在尋找上鉤目錄包的一個非常具體的版本,而不是最新版本。這發生在我身上一次,清理出來.cabal解決了我的問題。