我将描述到目前为止对我工作的解决方法。我已经尝试了很多不同的东西,但我只会在这里描述一下工作的尝试。
(顺便说一句:我使用的是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