【问题标题】:How do you install packages/libraries without Cabal or Cabal-Install?如何在没有 Cabal 或 Cabal-Install 的情况下安装包/库?
【发布时间】:2011-12-31 05:38:52
【问题描述】:

我正在尝试在 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 安装的,并没有很好地解释这一点。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 谢谢,我发现我错误地使用了 runhaskell 设置。凌晨 3 点未在所有气缸上点火。非常感谢!
    【解决方案2】:

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

    【讨论】:

    • 谢谢,我知道这一点,但从 RWH 看来,您需要先安装 parsec 和网络 (book.realworldhaskell.org/read/…),然后在运行 bootstrap.sh 之前先安装文档 HTTP。我现在看到 bootstrap.sh 为您完成了所有这些工作。这就是我凌晨 3 点做这件事的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 2012-04-08
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多