繁体   English   中英

使用`ghc-pkg`注册多个版本的软件包?

[英]Registering multiple versions of packages with `ghc-pkg`?

我正在尝试在FreeBSD 8.1上安装GHCCabal 我已经安装了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吗? 或者我可以安装较低版本的软件包吗? (或并排安装)

你已经遇到了所谓的Haskell自己的DLL地狱

您只需附加版本号即可安装以前版本的库,例如cabal install base-3.0.3.2 ,尽管我不知道GHC 7.0.1有哪些限制。

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

如果这些都不起作用并且您确实发现必须重新安装GHC,我是否可以建议您使用Haskell平台 它将GHC 6.12.3与许多有用的库捆绑在一起。

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

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

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

编辑:如果您安装了darc,您可以查看cabal源树 这已经为Cabal-1.10和ghc-7设置了,因此它应该开箱即用。 如果你不能安装darc,你也可以找到源代码。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM