2013-11-02 91 views
0

我有點困惑。因此,我安裝的每個軟件包都期望其依賴項具有特定的版本。有些版本不向後兼容。因此,如果我安裝了要求1.7版本的libX的packageB和需要與1.2版本不兼容的1.2版本的相同libX的packageA,那麼我就搞砸了。更糟糕的是libX依賴於它們某些版本的libY和libZ。如何避免與cabal安裝不同軟件包的lib版本衝突?

那麼,如何避免安裝衆多軟件包時出現版本衝突,併爲我安裝的每個軟件包獲取完全版本的庫?

+1

這被稱爲「cabal dependency hell」。歡迎:) – jozefg

+0

我們有一種解決方案稱爲cabal沙箱。 – bheklilr

+0

@bheklilr當你必須一起使用'packageB'和'packageA'時,這並沒有幫助。我們確實需要在包數據庫中包含一些版本的集成概念..並導入.. – jozefg

回答

1

最簡單的方法是同時安裝它們。從新鮮鹼(不具有預先安裝的任何庫)嘗試:

cabal install libA libB libC 

稍硬是單獨安裝它們,但手動約束與小集團--constraint標誌版本。

+1

*「從一個新的基地(以前沒有安裝任何庫)」*所以,絕對是一個很好的沙箱用例。 –

相關問題