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

Kur*_*sis 5 ubuntu haskell cabal cabal-install ubuntu-11.04

我试图在Ubuntu 11.04上从零开始设置Haskell,而不使用过时的Debian存储库或Haskell-Platform.

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

后者指定了几个依赖(parsecnetwork),其每一个都有自己的(几个依赖关系mtl,text等).

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

解包,然后runhaskell不起作用.

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

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

Eri*_*ink 11

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


npo*_*cop 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
Run Code Online (Sandbox Code Playgroud)

在构建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
Run Code Online (Sandbox Code Playgroud)

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

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

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