Actualización de gcc para una cuenta de usuario específica

Actualización de gcc para una cuenta de usuario específica

Trabajo en un clúster informático que ejecuta CentOS6/RHEL6 y que comparto con aproximadamente 100 usuarios más, supervisado por un único administrador de TI.

Recientemente, comencé a escribir en C++ y parte de mi código depende de C++ 11. De acuerdo aesta página web, C++11 es compatible con gcclas versiones 4.8.1 y superiores.

Desafortunadamente, el grupo informático tiene la versión 4.4.7.

Hace un rato, por otra razón, intenté instalargcc la versión 4.8.4 en una ubicación bajo mi directorio de inicio en el clúster. La instalación falló, coneste mensaje de error. Algunas búsquedas en Google me llevaron a creer que debería actualizarglibc , así que intenté instalar una versión más nueva en mi directorio de inicio. Esofalló dramáticamente.

Mi administrador de TI concluyó: "Probablemente no funcionará modificar la versión degcc en el clúster". Antes de molestarla con más preguntas (porque a estas alturas nonecesidaduna versión actualizada dealgunocompilador C), estoy buscando estos:

(1) ¿Es gccfactible instalar la versión 4.8.1+ en mi cuenta de usuario? (Después de que intenté hacer esto la última vez, algunas personas dijeron que era fundamentalmente una idea terrible).

(2) Si la respuesta a (1) es sí, ¿qué precauciones debo tomar esta vez para asegurarme de que la instalación sea exitosa? ¿Es necesaria la instalación glibcen mi cuenta? ¿Es eso factible?

(3) Si la respuesta a (1) es no, ¿sería viable para mi administrador de TI instalar una versión más nueva en gcctodo el sistema, sin alterar el código que depende de la versión ya presente?

(4) Si nada de lo anterior es factible para gcc, ¿cambia la situación con otro compilador de C?

Para resumir, estoy buscando a alguien con conocimiento gcc(u otro compilador de C) para explicar cómo una persona (sin sudoautoridad) haría para actualizarlo, si eso es posible.

Respuesta1

Pude compilar GCC 4.8.5 desde la fuente en un directorio de inicio en Centos 6.7. Estoy usando la distribución glibc; No tuve que construir glibc.

Advertencia: estoy haciendo esto en un sistema donde están instaladas las dependencias de compilación para el paquete fuente GCC 4.4.x de la distribución, así como el libmpc-develpaquete del repositorio epel. Si faltan, es posible que primero tenga que compilarlos desde la fuente en un directorio de inicio y cambiar el proceso de compilación de gcc de alguna manera para usarlos desde allí (si es que eso es posible).

Edificio CCG:

  1. Obtenga la fuente del CCG

    curl -LO https://mirrors.kernel.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2
    
  2. Extracto

    tar xf gcc-4.8.5.tar.bz2
    
  3. Cree un directorio de compilación fuera del directorio fuente de GCC y acceda a él.

     mkdir build && cd build
    
  4. Configurar. Hice:

     ../gcc-4.8.4/configure --build=x86_64-linux-gnu --prefix=/home/rakslice/gcc_4_8 \
                            --enable-checking=release --enable-languages=c,c++,fortran \
                            --disable-multilib --program-suffix=-4.8
    
  5. Construir. Tengo 4 núcleos, así que lo hice:

     make -j 5
    
  6. Instalar

     make install
    
  7. Ahora puedo compilar y ejecutar código de prueba.

     /home/rakslice/gcc_4_8/bin/g++-4.8     hello.cpp   -o hello
     ./hello
     Hello, World!
    

Respuesta2

Respecto a sus preguntas específicas:

(1) Sí, es factible, pero puede que no sea divertido.

(2) No, normalmente puedes utilizar el sistema glibc. De gcc necesitas libstdc++, libgccetc.

Mi enfoque sería seguir elinstrucciones oficiales muy cercanoy sólo recurra a una instrucción no oficial si se adapta muy bien a su plataforma.

En realidad, no me molestaría con 4.8 e iría directamente a una de las series de versiones actuales (5.2 o 4.9).

Nota: Yo mismo no he realizado una instalación de gcc no root, pero trabajo en sistemas que mantienen diferentes versiones de gcc como módulos gnu.

información relacionada