如何从源头上完全引导GHC和cabal

我想安装pandoc ,但由于公司的IT策略,我有一些限制:

  1. 我无法下载任何二进制文件。
  2. 每个可执行文件都必须从源代码构build
  3. 只有谷歌浏览器才能访问互联网(代理限制)

所以我下载了Pandoc源码,但是依赖于haskell 。 于是我下载了ghc-7.8.4-src.tar.bz2

不幸的是我发现我需要GHC来构buildGHC 。 我下载了ghc-7.4.1-i386-unknown-linux.tar.bz2 ,我得到这个错误:

 $ ./configure checking for path to top of build tree... ./configure: line 2113: utils/ghc-pwd/dist-install/build/tmp/ghc-pwd: cannot execute binary file: Exec format error configure: error: cannot determine current directory 

"/usr/src/ghc-7.4.1/utils/ghc-pwd/dist-install/build/tmp/usr/src/ghc-7.4.1/utils/ghc-pwd/dist-install/build/tmp"我发现了一个不应该在这里的二进制文件。 我不能执行二进制文件。

我也发现我需要cabal ,我需要先安装Haskell

看来它是咬着自己尾巴的蛇

有没有一种方法可以用来build立Pandod,Haskell,Cabal和所有其他的依赖?

通常,如果我需要一个程序,我只需下载源代码,执行./configure ,解决依赖性问题并最终运行make install 。 在这种情况下,似乎我需要我的整个一生只是为了了解我需要build立Pandoc …

我会尝试使用新(测试版)发布的stack工具[ 1 ]

食谱下载GHC并建立pandoc:

  1. 获取stack可执行文件[ 2 ]
  2. 跑:

    $堆栈设置

  3. 添加推荐的目录到你的PATH(将会是$HOME/.stack/progams/...arch.../ghc-7.8.4/bin

  4. 跑:

    $ stack install pandoc

  5. $HOME/.local/bin查找pandoc可执行文件。

链接:

 [1]: https://www.fpcomplete.com/blog/2015/06/announcing-first-public-beta-stack [2]: https://github.com/commercialhaskell/stack/wiki/Downloads