我將描述到目前爲止對我工作的解決方法。我已經嘗試了很多不同的東西,但我只會在這裏描述一下工作的嘗試。
(順便說一句:我使用的是Mac OS X 10.6.4和你的結果可能是在不同的系統不同)
- 我從源代碼安裝GHC 6.12.3。不要刪除您之前的GHC,因爲GHC需要它。
- 我刪除了符號鏈接在
/usr/bin
(爲ghc
,ghci
,ghc-pkg
和runhaskell
)我以前的GHC這是從哈斯克爾平臺2010.1.0.1安裝程序中的一個。
- 我安裝了
cabal-install
使用它的bootstrap.sh
腳本。
- 我安裝了
random
和haskell98
程序包的修補版本。差異只是在他們.cabal
文件
- 撞到
random
的版本升級到1.0.0.2.1
,改變依賴IT上time
是time == 1.1.*
- 撞到
haskell98
的版本到1.0.1.1.1
,這就是它
- 我運行了
cabal update
和cabal upgrade
以查看哪些軟件包已過期。我做了cabal install
那些。我相信這有助於更快地達到穩定狀態。 (請注意,syb
的安裝失敗,這cabal install parsec
說有什麼可以做這件事的時候cabal upgrade
不同的說,所以我離開了那兩個包單獨)
我證實,我的設置是由階段之間運行ghc-pkg check
確定。有時會中斷,因爲一個軟件包被重新安裝到以前的版本上,並且版本號相同,並且依賴它的軟件包需要重新安裝。當發生這種情況時,我再次打破軟件包cabal install
。
我也用下面的程序來驗證我的設置不包含兩個包具有相同版本:
import Data.List (sort)
import Data.Maybe (fromJust)
import System.IO (hGetContents)
import System.Process (CreateProcess (std_out), StdStream (CreatePipe), createProcess, shell)
main :: IO()
main = do
pkgListRaw <-
createProcess (shell "ghc-pkg list") { std_out = CreatePipe }
>>= hGetContents . fromJust . sndOfFourTup
let pkgListSorted = sort . filter (not . null) $ lines pkgListRaw
putStrLn .
unlines . map (dropWhile (== ' ') . fst) .
filter (uncurry (==)) . zip pkgListSorted $ tail pkgListSorted
where
sndOfFourTup (_, x, _, _) = x
注:
- 我不能讓哈斯克爾平臺2010.1.0.1工作。在我升級到GHC 6.12.3後,事情只對我有效。具有諷刺意味的是,這違背了GHC下載頁面上的建議:
停止!
對於大多數用戶,我們建議安裝Haskell平臺而不是GHC。目前的Haskell平臺版本包括最近的GHC版本以及一些其他工具(如cabal)以及已知可協同工作的更大的一組庫。
這項工作,各地可能會突破某個時候在將來也是如此。我想這可能會在幾個月內發生。像random
這樣的核心庫將得到更新,然後依賴性問題將再次開始解開。那麼我/你將不得不花費時間來修復我們的設置。也許那時需要升級到更新的GHC。但是誰知道呢,也許這將會是一個老版本,隨着hackage軟件包得到更新以解決與依賴相關的問題,它會變得穩定。作爲對您的服務,我會在時間到來的時候更新這個問題和答案。 (假設其他人也有這個問題,到目前爲止我驗證了Simon Marlow和Peaker也面臨這個問題)
如何知道你的Haskell設置是否被破壞(如果其中任何一個是真的,那麼設置被破壞):
- 沒有什麼工作
ghc-pkg check
說,這是打破
- 短節目的源,我把這個答案上面發現你有完全相同的版本
- 012安裝兩次包,然後循環
cabal install
上面我寫的軟件包列表,或者另一個列表(最好是有很多依賴關係的大軟件包)。如果你永遠不會達到穩定狀態(循環的一次迭代總是重新安裝某些東西),那麼你的設置就會被破壞。 警告:此步驟可能會破壞您當前正在運行的Haskell設置。這樣做,如果你是馬索好奇或願意解決你的設置它打破後(這個過程可能是費時)
我想知道您是否設置被破壞或工作。這可以幫助我。例如,如果我們發現GHC 6.10設置工作正常,我/ U可以推薦的這些設置中人們對建議的人來嘗試哈斯克爾等
我希望這可以幫助別人面對之際相同或相似的問題。非常感謝Simon Marlow和John!
感謝您的參與! :)我已經添加了這些命令的輸出到我的問題 – yairchu 2010-06-25 20:35:19