如何在没有Cabal或Cabal-Install的情况下安装软件包/库?

时间:2011-11-17 10:42:37

标签: haskell ubuntu ubuntu-11.04 cabal cabal-install

我正在尝试在Ubuntu 11.04上从零开始设置Haskell,而不使用过时的Debian存储库或Haskell平台。

我从源代码安装了GHC-7.0.4没有问题,现在需要安装Cabal(似乎已经包含在/usr/local/lib/ghc-7.0.4/Cabal-1.10中的GHC中) .2.0)和Cabal Install

后者指定了几个依赖项(parsecnetwork),每个依赖项都有自己的几个依赖项(mtltext等)。

安装这些软件包的命令是什么,我是以tar.gz格式从hackage下载的?

解包,然后runhaskell不起作用。

我看到了Setup.lhs,但目前尚不清楚它是什么或如何使用它。

我发现的大多数Haskell文档假设您已经从repo或Haskell-Package安装,并没有真正解释这一点。

2 个答案:

答案 0 :(得分:11)

cabal-install有一个执行此操作的shell脚本。如果您download it from hackage并安装它,则可以bootstrap.sh开始安装cabal-install。然后,您可以使用它来安装其他软件包。

答案 1 :(得分:5)

有两种不同的套餐:Cabalcabal-install。 Cabal是一个库,cabal-install是一个名为cabal的可执行文件。

要安装软件包,cabal-install是Cabal的可选便利包装器,但需要使用Cabal。

根据http://hackage.haskell.org/trac/ghc/wiki/Commentary/Libraries,Cabal是一个零启动'包,所以当你构建GHC时,Cabal及其依赖项是自动构建的。

您可以使用ghc-pkg可执行文件来检查已安装的软件包:

# ghc-pkg list

在构建GHC后检查Cabal是否在列表中。如果是,您可以使用此文档安装更多不使用cabal-install的软件包:

http://haskell.org/haskellwiki/Cabal/How_to_install_a_Cabal_package

我建议您先安装cabal-install,然后使用cabal-install可执行文件安装其他所有内容。通常用于全局安装的命令是:

# runhaskell Setup configure
# runhaskell Setup build
# sudo runhaskell Setup install

解压缩包tarball并使用Setup.hsSetup.lhs文件运行文件夹中的命令。请注意,还支持每用户非root用户安装 - 使用runhaskell Setup configure --user

以这种方式安装cabal可执行文件及其依赖项时,请使用cabal install {package-name}安装更多软件包。

请注意,Haskell平台的存在主要是因为您自己安装cabal-install的痛苦。