Cómo instalar gcc 4.7.x / 4.8.x en CentOS


88

¿Cuál sería la forma más fácil de instalar gcc4.7.x / 4.8.x en un sistema con CentOS 6.2+? El paquete RPM predeterminado contiene una versión anterior de gcc.

Respuestas:


67

Tru Huynh de centos.org ha creado el conjunto de herramientas para desarrolladores redhat 1.1 , para centos, y contiene gcc 4.7.2

Así que simplemente podría usar su repositorio e instalar solo gcc, al instante.

cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo 
yum --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++

Esto lo instalará muy probablemente en /opt/centos/devtoolset-1.1/root/usr/bin/

Luego puede indicarle a su proceso de compilación que use gcc 4.7 en lugar de 4.4 con la variable CC

export CC=/opt/centos/devtoolset-1.1/root/usr/bin/gcc  
export CPP=/opt/centos/devtoolset-1.1/root/usr/bin/cpp
export CXX=/opt/centos/devtoolset-1.1/root/usr/bin/c++

44
running yum --enablerepo=testing-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++devuelve un cuatro o cuatro, ..: imagen

1
no te olvides de yum clean allhacer los pasos nuevamente después de la falla; de lo contrario, obtendrás 404

66
en lugar de establecer variables individuales que puede hacer scl enable devtoolset-1.1 bash(se inicia un nuevo shell con todas las variables establecidas).
marcin

13
Para g ++ 4.8.2, cambie 1.1a 2todas partes y cambie --enablerepo=testing-1.1-devtools-6a--enablerepo=testing-devtools-2-centos-6
dwurf

3
¿Esto todavía funciona? Obtengo people.centos.org/tru/devtools-2/6Workstation/i386/RPMS/… : [Errno 14] PYCURL ERROR 22 - "La URL solicitada devolvió el error: 404"
Paul Praet

42

Aquí se explica cómo obtener devtoolset-2 (incluido gcc 4.8.1)

Esto fue tomado de http://people.centos.org/tru/devtools-2/readme

wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++

Problemas conocidos:

  • paquetes sin firmar
  • CentOS-6 devtoolset-2 necesita devtoolset-2-ide que contiene toda la pila de Eclipse, pero aún no se compila
  • CentOS-6 todos los archivos relacionados con Maven tampoco están construidos

Principales cambios de devtools-1.1:

  • /opt/centos ya no se usa
  • /opt/rh ahora se usa como ascendente (como versión SL)

1
Tuve que exportarlos para que funcione. ¡Gracias! exportar CC = / opt / rh / devtoolset-2 / root / usr / bin / gcc exportar CXX = / opt / rh / devtoolset-2 / root / usr / bin / c ++ export CPP = / opt / rh / devtoolset-2 / root / usr / bin / cpp
jemiloii

2
@JemiloII: ¿qué hiciste scl enable devtoolset-2después de la instalación? Eso debería funcionar para obtener los compiladores correctos en el camino.
Mark Lakata

eso realmente funciona mejor que las exportaciones!
jemiloii

@MarkLakata - Correr scl enable devtoolset-2arroja el siguiente errorNeed at least 3 arguments. Run scl --help to get help.
Swanidhi

3
@Swanidhi El comando completo es scl enable devtoolset-2 bashdonde el último campo podría ser diferente si no está utilizando bash.
Mark Lakata


21
# 1. Install a package with repository for your system:
# RHEL 6: `yum-config-manager --enable rhel-server-rhscl-6-rpmss`
# RHEL 7: `yum-config-manager --enable rhel-server-rhscl-7-rpms`
$ sudo yum install centos-release-scl # On CentOS 6/7+, install package centos-release-scl available in CentOS repository

# 2. Install the collection:
$ sudo yum install devtoolset-3

# 3. Start using software collections:
$ scl enable devtoolset-3 bash

$ sudo yum list devtoolset-3\*

1
¿qué hash -rhacer?
codecowboy

ln -s / opt / rh / devtoolset-2 / root / usr / bin / * / usr / local / bin / broke sudo en mi sistema Centos 6.7. Creo que podría alias sudo.
codecowboy

@codecowboy $PATHcada vez que escribe un comando almacenando en caché los resultados en la memoria, hash -rfuerce la recarga $ PATH
Denis Denisov

@Denji - aparentemente el sitio hop5.in ya no existe.
slm

puede necesitar agregar --nogpgcheckopción: sudo yum install --nogpgcheck devtoolset-3
FooBee

2

Por lo que puedo ver en el gnu gcc , la última versión estable es 4.62. La versión 4.7 se puede descargar y compilar, más información sobre la instalación de gcc .


Pregunté sobre 4.7 porque se supone que tiene algunas características de C ++ 11 que necesito (portar desde Clang).
Tomas Andrle

Entonces, aparte de compilar desde la fuente, ¿no hay, por ejemplo, un sitio web que tenga algunas rpm que pueda usar?
Tomas Andrle

No es que yo sepa, pero no estoy muy bien informado sobre el tema. El repositorio de RPM típicamente incluye el RPM solo en su forma estable.
bbaja42

2

ninguna de estas respuestas funcionó para mí.
Incluso en el shell de devtoolset todavía se ve mi gcc 4.4.7.
Mi truco fue el siguiente:

mv /usr/bin/gcc /usr/bin/gcc.bckup
ln -s /opt/centos/devtoolset-1.1/root/usr/bin/gcc /usr/bin/gcc

1

hay un problema con devtool1.1, así que hice algunos cambios; finalmente, esto funcionó para mí: primera ejecución

yum clean all

que:

wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -O /etc/yum.repos.d/devtools-1.1.repo

ahora abra /etc/yum.repos.d/devtools-1.1.repo y cambie de:

http://people.centos.org/tru/devtools-2/$releasever/$basearch/RPMS

(si está utilizando x86_64) para:

http://people.centos.org/tru/devtools-1.1/6/x86_64/RPMS/ 

o ((si está utilizando x86))

http://people.centos.org/tru/devtools-1.1/6/i386/RPMS/

y finalmente correr:

yum install devtoolset-1.1

0

Una forma de lograr esto sería obtener srcRPM de los repositorios de fedora y recompilarlos para su sistema de destino.
Fedora 17y luego proporcionargcc 4.7

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.