4

我通常发现超过一半的大包的 cabal 安装失败,这对新用户来说是一个致命的缺陷!

这次我尝试安装yesod,有什么提示吗?

> cabal install yesod
  ...
Loading package time-1.2.0.5 ...

GHCi runtime linker: fatal error: I found a duplicate definition for symbol
   _get_current_timezone_seconds
whilst processing object file
   C:\Users\guthrie\AppData\Roaming\cabal\time-1.2.0.5\ghc-7.4.1\HStime-1.2.0.5.o
This could be caused by:
   * Loading two different object files which export the same symbol
   * Specifying the same object file twice on the GHCi command line
   * An incorrect `package.conf' entry, causing some object to be
     loaded twice.
GHCi cannot safely continue in this situation.  Exiting now.  Sorry.

cabal: Error: some packages failed to install:
authenticate-1.3.1.1 depends on http-conduit-1.6.1.1 which failed to install.
http-conduit-1.6.1.1 failed during the building phase. The exception was:
ExitFailure 1
yesod-1.1.1.2 depends on yesod-core-1.1.2.1 which failed to install.
yesod-auth-1.1.1.1 depends on yesod-core-1.1.2.1 which failed to install.
yesod-core-1.1.2.1 failed during the building phase. The exception was:
ExitFailure 1
yesod-form-1.1.3 depends on yesod-core-1.1.2.1 which failed to install.
yesod-json-1.1.0 depends on yesod-core-1.1.2.1 which failed to install.
yesod-persistent-1.1.0 depends on yesod-core-1.1.2.1 which failed to install.
4

2 回答 2

2

yesod 使用与 Haskell 平台不同版本的 alex 包。除了 ghc,我总是从我的发行版的包管理器中安装 alex 和快乐,然后使用 cabal。或者,您可以随时使用

cabal update && cabal install alex happy
cabal install yesod-platform
于 2012-10-11T04:07:15.297 回答
0

这很可能是由于尝试同时安装两个版本的 time 包而发生的。您可以尝试运行cabal install yesod-platform并查看问题是否仍然存在?

正如@Inaimathi 所说,这可能是由于旧版本的cabal. 或许也可以试试cabal update && cabal install cabal-install

于 2012-10-09T15:25:52.423 回答