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.