我正在尝试在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吗?或者我可以安装较低版本的软件包吗? (或并排安装)
答案 0 :(得分:3)
你已经遇到了所谓的Haskell's own DLL hell。
您只需附加版本号即可安装以前版本的库。 cabal install base-3.0.3.2
,虽然我不知道对GHC 7.0.1有什么限制。
您还可以使用cabal-dev或capri创建小型cabal沙箱。这些将允许您从头开始,忽略可能导致冲突的包。
如果这些都不起作用且您确实发现必须重新安装GHC,我是否可以建议您使用Haskell Platform。它将GHC 6.12.3与许多有用的库捆绑在一起。
更新:误读您尝试实际安装cabal安装。我只是使用Haskell平台。它已经设置了所有这些东西。
答案 1 :(得分:1)
一种解决方案是安装ghc-6.12,它将提供Cabal-1.8。您可以使用该ghc为可执行文件构建cabal-install,然后在构建cabal可执行文件后切换到ghc-7以获取其他所有内容。
但是我认为你应该能够用ghc-7构建Cabal-1.8。看起来安装程序对基本依赖项感到困惑。尝试执行./Setup configure -fbase4 -f-base3
并查看是否有效。
编辑:如果您安装了darc,可以查看cabal source tree。这已经为Cabal-1.10和ghc-7设置了,因此它应该开箱即用。如果你不能安装darc,你也可以找到源代码。
答案 2 :(得分:0)
我不得不降级GHC 6.x.
最初我为Happstack
做了这个。但是,Happstack需要至少6.12.x的GHC,而在FreeBSD 8.1上使用GHC 7.x安装Cabal太难了。 (我不能成功)
我刚从GHC网站下载并安装了GHC 6.12.3,一切都神奇地起作用! Cabal,Happstack立即安装。由于交换空间不足,我只失败了一次。