2015-06-07 54 views
4

試圖在12.04精確構建的Ubuntu中遍歷整個Cabal依賴地獄,而且我一直在緩慢進步。Ubuntu上的勇敢陰謀地獄12.04

我的第一個bash命令 cabal install --allow-newer產生以下消息在新包的長列表的底部:

cabal: The following packages are likely to be broken by the 
reinstalls: 
    regex-posix-0.95.1 
    regex-compat-0.95.1 
Use `--force-reinstalls` if you want to install anyway. 

(注:A力量重裝是絕然)

如何修復這些軟件包並完成安裝cabal的過程? 我必須留在12.04和cabal已更新。

cabal install ad --reorder-goals最終得到它安裝。

但是我仍然沒有擺脫陰謀地獄,因爲我現在要處理:

陰謀:至少有以下依賴性缺失:埃宋-any,JSON-模式-any,monad- logger -any,mtl -any,persistent -any,persistent-postgresql == 2.1.6,persistent-template -any,rest-core -any,rest-snap -any,snap-core -any,snap-server -any文本 - 任何」

,當我嘗試執行cabal build

UPDA蒂的依賴性所需的名單已縮小到:(一小集團安裝精細名稱) 單子記錄器,持久性,持續性 ,PostgreSQL的== 2.1.6 「持續模板 休息-SNAP 扣核心 扣-server

因此除了persistant-postgresql外,任何版本都可以使用。

更新2:好消息,雖然,運行sudo apt-get install libghc-zlib-dev 發現一個有趣的路障。

在嘗試的建議,在這個問題的答案之一:Question

安裝libghc-zlib的-綁定-dev的,裏面裝的罰款,並libghc-zlib的-dev的。

zlib是現在正在使用的依賴項。一旦安裝進度將繼續。

libghc-zlib-dev當前警告安裝嘗試:

警告:請檢查您的區域設置: LANGUAGE =(未設置), LC_ALL =(未設置), LANG =「的en_US.UTF-8 支持,並安裝在系統上。

perl:警告:回退到標準區域設置(「C」)。

顯示。

也許這可以幫助我們深入調查。

我們必須走出陰謀地獄。

很肯定這是種植紅旗的地方:

的#include 「zlib.h」

^

編譯終止。 setup-Simple-Cabal-1.22.2.0-x86_64-linux-ghc-7.10.1:缺少依賴於> a 外部庫: *缺少(或不良)頭文件:zlib.h *缺少C庫:z

男人我希望這個網站會有自動Ctrl-C Ctrl -V格式化,那會怎麼樣?

+5

使用'rm -rf〜/ .ghc〜/ .cabal'去除所有包。不要全局安裝沒有理由全局安裝的軟件包。使用[sandboxes](http://coldwa.st/e/blog/2013-08-20-Cabal-sandbox.html)。使用['cabal exec'或'cabal repl'](https://www.reddit.com/r/haskell/comments/2ywbwy/how_do_i_tell_ghc_that_i_have_a_cabal_sandbox /)在沙盒環境中更交互地運行程序。最後但並非最不重要的是,使用[Stackage](http://www.stackage.org/)。 –

+0

或者只是註銷'regex-posix-0.95.1'和'regex-compat-0.95.1'以及任何依賴於它們的東西,如果你想保留它們,請嘗試重新安裝它們,試圖安裝。 –

+1

我建議使用一個cabal沙盒,每個項目一個,如果你碰巧有一個最近的cabal。 – 9000

回答

1

它看起來像你試圖構建一個單一的包,問題是它有很多依賴。

安裝所有依賴關係的最佳方式(因爲與「安裝」不同的「構建」不會找到一個解決方案來安裝它們)只是(最好在沙箱中)運行cabal install --dependencies-only。這也將同時解決所有問題,而不是一個接一個在不兼容的地方選擇......

+0

幸運的是,該機器現在有14.04 – hellyale