3

我正在尝试在 FreeBSD 8.1 上安装GHC和安装。Cabal我已经安装了 GHC 7.0.1(因为它是当前的稳定版本),现在尝试安装Cabal(安装cabal-install),但它失败并显示此错误消息。

%./Setup configure
Configuring Cabal-1.8.0.4...
Setup: At least the following dependencies are missing:
base >=4 && <3 && >=1 && <5, filepath >=1 && <1.2
%

绝对我的库版本太高了。

%ghc-pkg list
/usr/local/lib/ghc-7.0.1/package.conf.d
   Cabal-1.10.0.0
   array-0.3.0.2
   base-4.3.0.0
   bin-package-db-0.0.0.0
   bytestring-0.9.1.8
   containers-0.4.0.0
   directory-1.1.0.0
   extensible-exceptions-0.1.1.2
   ffi-1.0
   filepath-1.2.0.0
   ghc-7.0.1
   ghc-binary-0.5.0.2
   ghc-prim-0.2.0.0
   haskell2010-1.0.0.0
   haskell98-1.1.0.0
   hpc-0.5.0.6
   integer-gmp-0.2.0.2
   old-locale-1.0.0.2
   old-time-1.0.0.6
   pretty-1.0.1.2
   process-1.0.1.4
   random-1.0.0.3
   rts-1.0
   template-haskell-2.5.0.0
   time-1.2.0.3
   unix-2.4.1.0
/home/eonil/.ghc/x86_64-freebsd-7.0.1/package.conf.d
   network-2.2.1.5
   parsec-2.1.0.1
%

我应该降级到 GHC 6.x 吗?或者我可以安装较低版本的软件包吗?(或并排安装)

4

3 回答 3

3

您遇到了所谓的Haskell 自己的 DLL hell

您可以通过附加版本号来安装以前版本的库,例如cabal install base-3.0.3.2,虽然我不知道 GHC 7.0.1 有什么限制。

您还可以使用cabal-devcapri创建小型 cabal 沙箱。这些将允许您从头开始,忽略会导致冲突的包。

如果这些都不起作用并且您确实发现您必须重新安装 GHC,我可以推荐您使用Haskell Platform吗?它将 GHC 6.12.3 与许多有用的库捆绑在一起。

更新:误读您试图实际安装 cabal 安装。我只是使用 Haskell 平台。它附带了所有这些已经设置好的东西。

于 2011-02-28T10:45:53.313 回答
1

一种解决方案是安装 ghc-6.12,它将提供 Cabal-1.8。您可以使用该 ghc 为可执行文件构建 cabal-install,然后在构建 cabal 可执行文件后切换到 ghc-7 用于其他所有内容。

但是我认为您应该能够使用 ghc-7 构建 Cabal-1.8。看起来安装程序对基本依赖项感到困惑。尝试做./Setup configure -fbase4 -f-base3,看看是否有效。

编辑:如果你安装了 darcs,你可以查看cabal source tree。这已经为 Cabal-1.10 和 ghc-7 设置好了,所以它应该是开箱即用的。如果您无法安装 darcs,您也可以获取源代码。

于 2011-02-28T12:18:39.207 回答
0

我不得不降级 GHC 6.x。最初我这样做是为了Happstack. 然而,Happstack 至少需要 6.12.x 的 GHC 并且在 FreeBSD 8.1 上使用 GHC 7.x 安装 Cabal 太难了。(我无法成功)

我刚刚从 GHC 网站下载并安装了 GHC 6.12.3,一切都很神奇!Cabal,Happstack 立即安装。由于交换空间不足,我只失败了一次。

于 2011-02-28T15:04:21.457 回答