我想在工作的Redhat x86_64 (RHEL v5)
服务器上安装GHC 7.2.2(在我的用户帐户中。我没有root访问权限)。我从GHC下载页面下载了Linux x86_64
的通用二进制文件。但是,当我运行configure
时,它会引发ghc-pwd
的glibc版本异常,因为Linux上的glibc
版本是2.6。所需的glibc版本是2.7。
我用Google搜索但没有为Redhat 5找到任何预先配置的GHC二进制文件。如果有任何人为RHEL 5
(或任何人)找到它,我将非常感谢如何解决glibc版本问题。 Linux风味,如果解决方法是一般的)。或者,如果某处有Redhat x86_64
的压缩二进制文件,我可以下载并解压缩它们,如果你指向我的话。否则看起来我在工作中遇到了GHC 6.12。
答案 0 :(得分:4)
我在股票RHEL 5.3上构建了ghc 7.4.1,从平台上运行良好的ghc 6.6或6.8(忘记哪一个)的二进制构建开始。然后我用它从源代码构建ghc 6.12,然后使用6.12从源代码构建7.4.1。不得不使用gcc 4.3来构建7.4.1,但这很好,因为在RHEL 5.3上可以使用gcc 4.3。
这项工作并不多,只需要相当长的时间才能完成所有构建。
答案 1 :(得分:3)
我有类似的问题,所以我自己编译ghc。这样做是非常重要的,因为你需要更新的binutils和gcc。但是t可以完成(全部在用户土地上)。
答案 2 :(得分:3)
GHC需要一个GHC二进制文件来编译自己。有预编译的GHC二进制文件可用,但它们是针对较新的glibc版本构建的
RHEL 5有glibc 2.5,所以你可以从那里使用GHC 6.8和bootstrap。通常GHC可以使用$ VERSION-2或更新版本进行自举(精确版本为documented with the source downloads)。
您还需要更新版本的gcc。 @ alex-iliev建议gcc 4.3就足够了,可以在RHEL 5上使用。您可以使用Gentoo Prefix来安装最新的gcc。
在目录中下载并安装预编译的6.8:
wget http://www.haskell.org/ghc/dist/6.8.3/ghc-6.8.3-x86_64-unknown-linux.tar.bz2
bunzip2 ghc-6.8.3-x86_64-unknown-linux.tar.bz2
tar -xf ghc-6.8.3-x86_64-unknown-linux.tar
cd ghc-6.8.3
mkdir ~/ghc_bootstrap_6_8
./configure --prefix=/home/wilfred/ghc_bootstrap_6_8/
make install
编译6.12:
wget http://www.haskell.org/ghc/dist/6.12.3/ghc-6.12.3-src.tar.bz2
bunzip2 ghc-6.12.3-src.tar.bz2
tar -xf ghc-6.12.3-src.tar
cd ghc-6.12.3
mkdir ~/ghc_bootstrap_6_12
PATH=/home/wilfred/ghc_bootstrap_6_8/bin:$PATH ./configure --prefix=/home/wilfred/ghc_bootstrap_6_12/
make
make install
编译7.2和7.6与6.12的过程相同。编译可能需要几个小时,因此您可能需要查看quick builds(尽管您需要为最终的GHC版本进行正常构建)。
如果您确实关闭了Gentoo Prefix root,只需按照自己的方式进入GHC 7.2。然后,您可以修改$EPREFIX/usr/portage/eclass/ghc-package.eclass
以添加以下行:
PATH=/home/wilfred/ghc_bootstrap_7_2/bin:$PATH
然后只需将ghcbootstrap
添加到您的USE标记中:
emerge --nodeps ghc
答案 3 :(得分:0)
它的ghc 6.8从源
编译6.12