2013-12-08 41 views
20

我有很多的問題cabal-install
1:我每次做cabal update,它告訴我做cabal install cabal-install,所以我做的,然後當我再次做cabal update,它說的一樣事情。哈斯克爾陰謀安裝錯誤

2:當我嘗試從hackage安裝ghc-mod,它給了我這個錯誤:

[[email protected] ~]$ cabal install ghc-mod 
In order, the following will be installed: 
haskell-src-exts-1.14.0 (reinstall) changes: pretty-1.1.1.1 -> 1.1.1.0 
hlint-1.8.55 (reinstall) 
ghc-mod-3.1.4 
setup: The program happy version >=1.17 is required but it could not be found. 
ghc-mod-3.1.4 depends on haskell-src-exts-1.14.0 which failed to install. 
haskell-src-exts-1.14.0 failed during the configure step. 
hlint-1.8.55 depends on haskell-src-exts-1.14.0 which failed to install. 

所以問題The program happy version >=1.17 is required but it could not be found.,所以我用cabal install happy沒有問題安裝happy 1.19.2

我再次試過cabal install ghc-mod,同樣的錯誤,所以我試了cabal install haskell-src-exts --reinstall --force-reinstalls。它給了我以下錯誤:

[[email protected] ~]$ cabal install haskell-src-exts --reinstall --force-reinstalls 
Configuring haskell-src-exts-1.14.0... 
setup: The program happy version >=1.17 is required but it could not be found. 
Failed to install haskell-src-exts-1.14.0 
cabal: Error: some packages failed to install: 
haskell-src-exts-1.14.0 failed during the configure step. The exception was: 
ExitFailure 1 

基本上The program happy version >=1.17 is required but it could not be found.。這個問題又是如此的高興?

我也試圖從hackage下載tar.gz的文件,並在 .cabal文件中使用cabal install,還修改了.cabal文件忽略依賴檢查,還是失敗了。

回答

28

cabal install~/.cabal/bin中放置可執行文件。

如果你把它添加到您的路徑,你就可以使用由小集團安裝新的可執行文件:

$ PATH=$HOME/.cabal/bin:$PATH 
+1

令人驚歎。我剛剛遇到了兩件很奇怪的事情,所以我在這裏寫信,以幫助他人。第一:我的$ PATH中已經擁有'$ HOME/.cabal/bin',並且它不起作用!這隻在我用'〜'替換'$ HOME'後纔開始工作 - 真的很有趣,因爲我用變量擔心代字號不行。第二件事:即使在系統看到路徑之後,* happy * - * cabal *仍然沒有!只有在我從這個答案執行命令後,它纔開始工作。我的猜測是,* cabal *不明白代字號...... –

+1

所以,我想問題是這樣的:* cabal *想要一個完整的路徑。所以,當我在$ PATH的'/ etc/environment'中添加':$ HOME/.cabal/bin' *(或者帶有波浪號的變體)*之後,* cabal *在兩種情況下都認爲* tilde *或* $ HOME *是路徑的一部分*(它是有效的路徑)*。爲了得到它的工作,必須寫入'/ etc/environment'到完整路徑,直到帶有二進制文件的目錄。 –

21

我有同樣的問題,遇到和我解決了這個問題與安裝happy包(混淆包名)。因此,在使用cabal安裝軟件包之前,請使用軟件包管理器(apt-get,pacman等)進行安裝。這應該解決問題。

+2

這工作沒有任何問題。謝謝! –

+1

從GHC/cabal(沒有Haskell平臺)的源代碼進行乾淨安裝,安裝這個固定不起作用的'ExitFailure 1'失敗。 –

+3

我可以通過'cabal install happy'解決這個問題。 – connorbode