So installieren Sie gcc 4.7.x / 4.8.x unter CentOS

88

Was wäre der einfachste Weg, um gcc4.7.x / 4.8.x auf einem System mit CentOS 6.2+ zu installieren ? Das Standard-RPM-Paket enthält eine ältere Version von gcc.

Tomas Andrle
quelle

Antworten:

67

Tru Huynh von centos.org hat das Red Hat Developer Toolset 1.1 für Centos erstellt und enthält gcc 4.7.2

Sie können also einfach sein Repo verwenden und sofort nur gcc installieren.

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

Dadurch wird es höchstwahrscheinlich in installiert /opt/centos/devtoolset-1.1/root/usr/bin/

Dann können Sie Ihren Kompilierungsprozess anweisen, den gcc 4.7 anstelle von 4.4 mit der CC-Variablen zu verwenden

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_
quelle
4
Laufen yum --enablerepo=testing-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++gibt einen Vier-gegen-Vier, ..: Bild
1
Vergessen Sie nicht, yum clean allbevor Sie die Schritte nach einem Fehler erneut
6
Anstatt einzelne Variablen zu setzen, können Sie dies tun scl enable devtoolset-1.1 bash(es startet eine neue Shell mit allen gesetzten Variablen).
Marcin
13
Wechseln Sie für g ++ 4.8.2 1.1zu " 2Überall" und wechseln Sie --enablerepo=testing-1.1-devtools-6zu "--enablerepo=testing-devtools-2-centos-6
dwurf" am
3
Funktioniert das noch Ich erhalte people.centos.org/tru/devtools-2/6Workstation/i386/RPMS/… : [Errno 14] PYCURL-FEHLER 22 - "Die angeforderte URL hat einen Fehler zurückgegeben: 404"
Paul Praet
42

Hier erfahren Sie, wie Sie devtoolset-2 (einschließlich gcc 4.8.1) erhalten.

Dies wurde von http://people.centos.org/tru/devtools-2/readme entnommen

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

Bekannte Probleme:

  • nicht signierte Pakete
  • CentOS-6 devtoolset-2 benötigt devtoolset-2-ide, das den gesamten Eclipse-Stack enthält, aber noch nicht erstellt wurde
  • CentOS-6 alle Maven-bezogenen Dateien werden auch nicht erstellt

Hauptänderungen von devtools-1.1:

  • /opt/centos wird nicht mehr verwendet
  • /opt/rh wird jetzt als Upstream verwendet (als SL-Version)
Mark Lakata
quelle
1
Ich musste diese exportieren, damit es funktioniert. Vielen Dank! exportiere CC = / opt / rh / devtoolset-2 / root / usr / bin / gcc exportiere CXX = / opt / rh / devtoolset-2 / root / usr / bin / c ++ exportiere CPP = / opt / rh / devtoolset-2 / root / usr / bin / cpp
jemiloii
2
@JemiloII - hast du scl enable devtoolset-2nach der Installation gemacht? Das sollte funktionieren, um die richtigen Compiler auf den Weg zu bringen.
Mark Lakata
das funktioniert eigentlich besser als der export!
Jemiloii
@ MarkLakata - Running scl enable devtoolset-2wirft den folgenden FehlerNeed at least 3 arguments. Run scl --help to get help.
Swanidhi
3
@Swanidhi Im vollständigen Befehl kann scl enable devtoolset-2 bashdas letzte Feld anders sein, wenn Sie nicht bash verwenden.
Mark Lakata
30

Es gibt eine neue Version von devtoolset 2.0. Nette Leute von Cern, die an Scientific Linux arbeiteten, erstellten eine offene Version :

Wenn Sie CentOS (nicht Scientific Linux) verwenden, müssen Sie den GPG-Schlüssel von hier importieren :

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

Genießen!

JiriHnidek
quelle
1
Der obige Link ist jetzt kaputt, ich habe hier einen ähnlichen Schlüssel gefunden: [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
quelle
1
Was bedeutet hash -rtun?
Codecowboy
In -s / opt / rh / devtoolset-2 / root / usr / bin / * / usr / local / bin / hat sudo auf meinem Centos 6.7-System gebrochen. Ich denke, es könnte alias sudo sein.
Codecowboy
@codecowboy Bei $PATHjeder Eingabe eines Befehls durch Zwischenspeichern der Ergebnisse im Speicher wird hash -r$ PATH
Denis Denisov am
@ Denji - anscheinend ist die hop5.in Seite nicht mehr.
Slm
Möglicherweise muss eine --nogpgcheckOption sudo yum install --nogpgcheck devtoolset-3
hinzugefügt werden
2

Nach dem , was ich aus dem Gnu GCC ersehen kann , ist die neueste stabile Version 4.62. Die Version 4.7 kann heruntergeladen und kompiliert werden. Weitere Informationen zur gcc-Installation .

bbaja42
quelle
Ich habe nach 4.7 gefragt, weil es einige C ++ 11-Funktionen haben soll, die ich brauche (Portierung von Clang).
Tomas Andrle
Abgesehen vom Kompilieren aus dem Quellcode gibt es also keine Website, die einige RPMs hätte, die ich verwenden könnte?
Tomas Andrle
Nicht, dass ich es gewusst hätte, aber ich bin nicht sehr sachkundig in dem Thema. Das RPM-Repository enthält normalerweise das RPM nur in seiner stabilen Form.
bbaja42
2

Keine dieser Antworten hat für mich funktioniert.
auch in der shell von devtoolset ist noch mein gcc 4.4.7 zu sehen.
Mein Trick war der folgende:

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

Es gibt ein Problem mit devtool1.1, daher habe ich einige Änderungen vorgenommen - schließlich hat dies bei mir funktioniert: zuerst ausführen

yum clean all

als :

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

Öffnen Sie jetzt /etc/yum.repos.d/devtools-1.1.repo und wechseln Sie von:

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

(wenn Sie x86_64 verwenden) um:

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

oder ((wenn Sie x86 verwenden))

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

und endlich laufen:

yum install devtoolset-1.1
yehudahs
quelle
0

Eine Möglichkeit, dies zu erreichen, besteht darin, srcRPMs aus den Fedora-Repositorys abzurufen und für Ihr Zielsystem neu zu kompilieren.
Fedora 17und später zur Verfügung stellengcc 4.7

user1055604
quelle