2011-12-08 8 views
6

Me gustaría instalar GHC 7.2.2 en un servidor Redhat x86_64 (RHEL v5) en funcionamiento (en mi cuenta de usuario. No tengo acceso de root). Descargué el archivo binario genérico para Linux x86_64 desde la página de descarga de GHC. Pero, cuando ejecuto configure, arroja la excepción de versión glibc para ghc-pwd ya que la versión glibc en Linux es 2.6. La versión requerida de glibc es 2.7.Compilación de GHC 7.2+ en Linux con versión de libc <2.7

Busqué en Google pero no encontré ningún binario GHC preconfigurado para Redhat 5. Apreciaré consejos sobre cómo solucionar el problema de la versión glibc si alguien lo ha descubierto para RHEL 5 (o cualquier versión de Linux si la solución es general). Alternativamente, si hay binarios comprimidos para Redhat x86_64 disponibles en alguna parte, puedo descargarlos y descomprimirlos, si me lo indica. De lo contrario, parece que estoy atascado con GHC 6.12 en el trabajo.

+2

tengo una prueba de la existencia que * puede * hacerse, pero necesito algo Es hora de verificar con los demás si recordamos cómo repetir el proceso. – acfoltzer

+0

Estupendo ... publique la prueba si puede recoger las piezas faltantes.Realmente nos ayudará a adoptar nuevas versiones de GHC en el trabajo. – Sal

+0

@acfoltzer, ¿alguna suerte de prueba? Será muy apreciado si lo tiene, y puede compartir. – Sal

Respuesta

3

Tuve un problema similar, así que compilo ghc yo mismo. Hacerlo no es trivial porque necesitas binutils y gcc más nuevos. Pero se puede hacer (todo en user-land).

+0

¿Qué versión de binutils y gcc necesitabas para compilar ghc? Me gustaría evitar compilar ghc porque es mucho trabajo, sin un pago seguro (ya que no tengo privilegios de root para instalar lo que se necesita). Pero si no puedo encontrar los binarios/soluciones, tendré que hacerlo. – Sal

+0

Usé binutils-2.20.1 y gcc-4.3.6. – augustss

4

Construí ghc 7.4.1 en stock RHEL 5.3, comenzando con una compilación binaria de ghc 6.6 o 6.8 (olvide cuál) que funcionó bien en la plataforma. Luego lo usé para construir ghc 6.12 desde la fuente, y luego usé 6.12 para construir 7.4.1 desde la fuente. Tuve que usar gcc 4.3 para construir 7.4.1, pero eso está bien ya que gcc 4.3 está disponible en RHEL 5.3.

No es mucho trabajo, solo una buena cantidad de tiempo para completar todas las compilaciones.

0

Su GHC 6.8 para compilar 6.12 de la fuente

3

GHC GHC necesita un binario disponible para compilar en sí. Hay binarios GHC precompilados disponibles, pero se han compilado contra versiones más nuevas de glibc

RHEL 5 tiene glibc 2.5, por lo que puede usar GHC 6.8 y arrancar desde allí. En general, GHC se puede iniciar con $ VERSIÓN-2 o más reciente (la versión exacta es documented with the source downloads).

También necesitará una versión más nueva de gcc. @ alex-iliev sugiere que gcc 4.3 es suficiente, que está disponible en RHEL 5. Su alternativa es usar Gentoo Prefix para instalar un gcc actualizado.

Descargar e instalar el precompilado 6.8 en un directorio:

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 

Compilar 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 

Compilación 7.2 y 7.6 es el mismo proceso que 6,12. La compilación puede llevar varias horas, por lo que es posible que desee consultar quick builds (aunque querrá una compilación normal para la versión final de GHC).

Si baja por la raíz del Prefijo Gentoo, simplemente inicie su camino hacia GHC 7.2. A continuación, puede modificar $EPREFIX/usr/portage/eclass/ghc-package.eclass añadir la línea:

PATH=/home/wilfred/ghc_bootstrap_7_2/bin:$PATH 

continuación, sólo tiene que añadir ghcbootstrap a sus parámetros USE y:

emerge --nodeps ghc 
Cuestiones relacionadas