5

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

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

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

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

打开包装,然后 runhaskell 不起作用。

我看到了 Setup.lhs,但不清楚它的用途或使用方法。

我发现的大多数 Haskell 文档都假设您是从 repo 或 Haskell-Package 安装的,并且并没有很好地解释这一点。

4

2 回答 2

11

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

于 2011-11-17T11:44:20.107 回答
6

有两种不同的包: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自己安装的痛苦。

于 2011-11-17T10:47:52.143 回答