Comment installer gcc 4.7.x / 4.8.x sur CentOS

88

Quel serait le moyen le plus simple d’installer gcc4.7.x / 4.8.x sur un système avec CentOS 6.2+? Le package RPM par défaut contient une version plus ancienne de gcc.

Tomas Andrle
la source

Réponses:

67

Tru Huynh de centos.org a construit le jeu d'outils de développement RedHat 1.1 , destiné à centos. Il contient gcc 4.7.2

Ainsi, vous pouvez simplement utiliser son dépôt et installer simplement gcc, instantanément.

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++

Cela l’installera très probablement dans /opt/centos/devtoolset-1.1/root/usr/bin/

Ensuite, vous pouvez indiquer à votre processus de compilation d'utiliser gcc 4.7 au lieu de 4.4 avec 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_
la source
4
en cours d'exécution yum --enablerepo=testing-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++renvoie un quatre-o-quatre, ..: image
1
n'oubliez pas de yum clean allfaire de nouveau les étapes après l'échec, sinon vous obtiendrez toujours 404
6
au lieu de définir des variables individuelles, vous pouvez le faire scl enable devtoolset-1.1 bash(un nouveau shell est créé avec toutes les variables définies).
Marcin
13
Pour g ++ 4.8.2, 1.12--enablerepo=testing-1.1-devtools-6--enablerepo=testing-devtools-2-centos-6
passez
3
Est-ce que ça marche encore? Je reçois people.centos.org/tru/devtools-2/6Workstation/i386/RPMS/... : [Errno 14] pycurl ERREUR 22 - "L'URL demandée a renvoyé l' erreur: 404"
Paul Praet
42

Voici comment obtenir devtoolset-2 (y compris gcc 4.8.1)

Ceci a été pris 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++

Problèmes connus:

  • forfaits non signés
  • CentOS-6 devtoolset-2 a besoin de devtoolset-2-ide qui contient la pile Eclipse complète, mais ne construit pas encore.
  • CentOS-6 tous les fichiers liés à maven ne sont pas construits non plus

Principaux changements de devtools-1.1:

  • /opt/centos n'est plus utilisé
  • /opt/rh est maintenant utilisé en amont (en version SL)
Mark Lakata
la source
1
Je devais exporter ces derniers pour que cela fonctionne. Merci! exportation CC = / opt / rh / devtoolset-2 / racine / usr / bin / gcc exportation CXX = / opt / rh / devtoolset-2 / racine / usr / bin / c ++ exportation CPP = / opt / rh / devtoolset-2 / racine / usr / bin / cpp
jemiloii
2
@JemiloII - l'avez-vous fait scl enable devtoolset-2après l'installation? Cela devrait permettre d’obtenir les bons compilateurs sur le chemin.
Mark Lakata
cela fonctionne mieux que les exportations!
Jemiloii
@MarkLakata - En cours d'exécution scl enable devtoolset-2génère l'erreur suivanteNeed at least 3 arguments. Run scl --help to get help.
Swanidhi
3
@Swanidhi La commande complète est scl enable devtoolset-2 bashoù le dernier champ pourrait être différent si vous n'utilisez pas bash.
Mark Lakata
30

Il y a une nouvelle version de devtoolset 2.0. Des gentils gens du Cern travaillant sur Scientific Linux ont créé une version ouverte :

Si vous utilisez CentOS (pas Scientific Linux), vous devrez importer leur clé GPG à partir d' ici en utilisant:

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

Prendre plaisir!

JiriHnidek
la source
1
le lien ci-dessus est cassé maintenant, j'ai trouvé la clé similaire ici: [ftp.riken.jp] ( ftp.riken.jp/Linux/cern/slc58/x86_64/RPM-GPG-KEYs/… )
Remo Harsono
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
la source
1
qu'est - ce que hash -rfaire?
codecowboy
ln -s / opt / rh / devtoolset-2 / root / usr / bin / * / usr / local / bin / cassé sudo sur mon système Centos 6.7. Je pense que cela pourrait alias sudo.
codecowboy
@codecowboy $PATHchaque fois que vous tapez une commande en mettant en cache les résultats en mémoire, hash -rforcez à recharger $ PATH
Denis Denisov
@ Denji - apparemment, le site hop5.in n'existe plus.
slm
peut avoir besoin d'ajouter une --nogpgcheckoption: sudo yum install --nogpgcheck devtoolset-3
FooBee
2

D'après ce que je peux voir dans le gnu gcc , la dernière version stable est 4.62. La version 4.7 peut être téléchargée et compilée, plus d’informations sur l’ installation de gcc .

bbaja42
la source
J'ai demandé à propos de 4.7 car il est censé avoir certaines fonctionnalités C ++ 11 dont j'ai besoin (le portage à partir de Clang).
Tomas Andrle
Donc, mis à part la compilation à partir de la source, il n’existe aucun site Web qui aurait des vitesses que je pourrais utiliser?
Tomas Andrle
Pas que je sache, mais je ne suis pas très au courant sur le sujet. Le référentiel RPM n'inclut généralement le RPM que sous sa forme stable.
bbaja42
2

aucune de ces réponses n'a fonctionné pour moi.
même dans la coque de devtoolset on voit encore mon gcc 4.4.7.
Mon tour était le suivant:

mv /usr/bin/gcc /usr/bin/gcc.bckup
ln -s /opt/centos/devtoolset-1.1/root/usr/bin/gcc /usr/bin/gcc
Dylan Westra
la source
1

devtool1.1 pose un problème, alors j’ai fait quelques changements - enfin, cela a fonctionné pour moi: premier lancement

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

maintenant ouvert /etc/yum.repos.d/devtools-1.1.repo et changer de:

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

(si vous utilisez x86_64) pour:

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

ou ((si vous utilisez x86))

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

et enfin courir:

yum install devtoolset-1.1
yehudahs
la source
0

Pour ce faire, vous pouvez srcextraire les RPM des référentiels fedora et les recompiler pour votre système cible.
Fedora 17et plus tard fournirgcc 4.7

utilisateur1055604
la source