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.

Tomás Andrle
fuente

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++
ck_
fuente
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)
Mark Lakata
fuente
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
30

Hay una nueva versión de devtoolset 2.0. Gente agradable de Cern trabajando en Scientific Linux creó una versión abierta :

Si usa CentOS (no Scientific Linux), tendrá que importar su clave GPG desde aquí usando:

rpm --import http://www.scientificlinux.org/documentation/gpg/RPM-GPG-KEY-cern

¡Disfrutar!

JiriHnidek
fuente
1
el enlace de arriba está roto ahora, encontré una clave similar aquí: [ftp.riken.jp] ( ftp.riken.jp/Linux/cern/slc58/x86_64/RPM-GPG-KEYs/… )
remo
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\*
Denis Denisov
fuente
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 .

bbaja42
fuente
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
Dylan Westra
fuente
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
yehudahs
fuente
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

usuario1055604
fuente