【发布时间】:2014-11-13 11:33:24
【问题描述】:
我正在尝试在 Red Hat Enterprise Linux 6.5 上从源代码安装 Haskell Platform 2014.2.0.0。我有两年前的 Haskell Platform 2012.4.0.0 和 GHC 7.4.2 的功能安装,以及 JustHub 最近安装的 Haskell Platform 2013.2.0.0 和 GHC 7.6.3。
我已经从源代码构建了 GHC 7.8.3,但它在测试套件中不断出现七处故障。我不知道这些测试失败是否无害。 (测试失败与我的问题无关,但以后可能会变得很重要。)
我解压了 2014.2.0.0 的源码包,阅读 README。它说构建这个 Haskell 迭代的方法是使用一个 shell 脚本,它被调用:
./platform.sh $PATH_TO_GHC_BINDIST_TARBALL
我没有 GHC 二进制分发 tarball。据我所知,对于任何版本的 Red Hat Enterprise Linux,都没有 GHC 7.8.3 的二进制分发 tarball。我有一个内置的 GHC 7.8.3。我如何告诉platform.sh——或者它下面的任何东西——没有tarball,它应该只使用$PATH 中的内容?或者,如何打包我现有的 GHC 7.8.3 安装,以便 platform.sh 接受它?
构建的 GHC 没有“cabal”命令,因此 platform.sh 中的 cabal 命令回退到 $PATH,我可以将其配置为其他已安装版本(2013.2/7.6.3 或 2012.4 /7.4.2)。这似乎没有什么区别:没有人认出“阴谋集团——沙盒”。两者都会导致抱怨我应该运行 'cd hptool ; cabal install --only-dependencies',我已经重复了。 platform.sh 永远不会超过这一点。
如果我手动运行 platform.sh 中的命令,我会进入 'cd hptool; cabal build',错误输出:“cabal-1.16.0.2:首先运行'configure'命令。”。但是 hptool 目录中没有可用的“配置”命令。
我现在卡住了。如何在 RHEL 6 上构建 Haskell Platform 2014?
【问题讨论】:
-
你应该尝试在不使用 platform.sh 的情况下构建 hptool(hptool 只是一个 cabal 包 -
cabal configure; cabal build应该可以工作,如果你有 GHC 和 cabal 工作)。 hptool 本身似乎需要 GHC 二进制发行版,所以我不知道这是否可行。如果它不起作用,HP 只是一堆软件包 - 转到 HP tarball 中的packages目录和cabal configure; cabal install这些软件包。如果这仍然不起作用,则 GHC 或 cabal 都不起作用。 -
这让我更进一步。我已经在包下的每个子目录中运行了配置/构建/安装序列,但是许多配置序列抛出错误,其中许多与缺少模块有关。一些缺失的位是这个特定版本的 Haskell Platform 2014 的内部依赖项(例如 vector-0.10.9.1 想要原语 0.5.2.1)。我假设 hptool 知道事情的顺序,并且可以处理为一个包提供它需要的另一个包的依赖项。有没有办法将我构建的 GHC 7.8.3 打包到 hptool 可以使用的路径结构中?
-
我从来没有从源代码构建 HP,所以我不能告诉你如何将你自己的 GHC 打包成 hptool 可以接受的格式。原语不是 hptool 或 HP 内部的,它是一个常规的 cabal 包,您可以通过
cabal install primitive获得。
标签: haskell installation redhat rhel platform