Wie installiere ich g ++ 4.9.2 in Cent OS 6.5?

13

Ich versuche, die neueste Version von g ++ in Cent OS zu installieren. Das Beste, was ich geschafft habe, ist das Folgende:

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
yum install devtoolset-2-gcc-c++ devtoolset-2-binutils

Dies installiert jedoch g ++ 4.8.2 und nicht 4.9.2. Gibt es eine Möglichkeit, 4.9.2 zu installieren?

SpeedCoder
quelle

Antworten:

4

Sie müssen es auf die altmodische Weise tun. Holen Sie sich die GCC-Quellen, bauen Sie sie von Hand.

Hast du einen Grund, warum du das ablehnst? (Ich kann mir ein paar vorstellen, aber wenn Sie es nicht auch tun, möchte ich nichts hinzufügen, was verwirrend sein könnte.)

Wenn Sie zögern, aus Quellen zu bauen, kann ich wahrscheinlich einige Schritte angeben.

HINWEIS: Der Grund dafür ist, dass die Devtools mit 4.9 derzeit nur für Red Hat-Benutzer mit einer gültigen Lizenz verfügbar sind. Warten Sie eine Weile, und schließlich bin ich sicher, dass 4.9-Devtools auch CentOS-Benutzern zur Verfügung gestellt werden, wie es derzeit 4.8 ist.

Hari Sundararajan
quelle
Vielen Dank für die Antwort, es scheint, als würde ich darauf warten. Können Sie hier bitte helfen Sie mir auch: superuser.com/questions/834915/...
SpeedCoder
28

CentOS 6/7 unterstützt dies offiziell. Sie benötigen kein Repository von Drittanbietern. Und die gcc-Version ist 4.9.2 im CentOS-Repo.

yum install centos-release-scl-rh          
yum install devtoolset-3-gcc devtoolset-3-gcc-c++   

Um die aktualisierten Tools zu verwenden, starten Sie eine neue Shell mit dem folgenden sclBefehl:

scl enable devtoolset-3 bash

Möglicherweise müssen Sie auch Ihre PATH-Umgebungsvariable zurücksetzen, die möglicherweise in ~ / .bashrc oder einer anderen Profildatei festgelegt ist. Wenn Sie es ändern müssen, sollte es auf zeigen/opt/rh/devtoolset-3/root/usr/bin/:$PATH

Weitere Informationen zur SCL von CentOS und von Red Hat

Jesse
quelle
Das hat bei mir nicht funktioniert. Nachdem diese 3 Schritte scheinbar erfolgreich abgeschlossen wurden, sehe ich immer noch gcc 4.7.2, wenn ich es tuegcc -v
BT
Ok, zusätzlich zu diesen Schritten musste ich meine .bashrc-Datei so ändern, dass meine Umgebungsvariable PATH auf /opt/rh/devtoolset-3/root/usr/bin/:$PATHanstatt gesetzt wurde /opt/centos/devtoolset-1.1/root/usr/bin/:$PATH. Nach einem Sitzungsneustart funktionierte es dann.
BT
Nachdem ich diese Lösung verwendet habe, sehe ich, dass die gcc-Version wirklich aktualisiert wurde (mit gcc --version), aber ich sehe immer noch die Header-Dateien der alten Version. Außerdem kann ich die meisten neueren Header nicht in dem Verzeichnis finden, in dem ich sie erwartet habe (/ opt / rh / devtoolset-3 / root / usr / include /). Warum kann das passieren und wie kann ich es lösen?
MaMazav
Damit diese Antwort den Test der Zeit besteht, fügen Sie yum search devtoolset | grep gcc-c++die richtige Zahl anstelle von 3 hinzu, wie in der Antwort
Waslap,
14

Ich verwende das Scientific Linux Cern 6-Repository, um gcc 4.9 und g ++ 4.9 auf meinen CentOS 6.5- und CentOS 6.6-Systemen zu installieren. G ++ 4.9.2 wird nicht installiert. Es installiert stattdessen g ++ 4.9.1, was für meine Bedürfnisse gut genug ist.

Hier sind die Befehle, mit denen ich es installiere.

cd /etc/yum.repos.d
wget http://linuxsoft.cern.ch/cern/scl/slc6-scl.repo
yum -y --nogpgcheck install devtoolset-3-gcc devtoolset-3-gcc-c++

Wie Michael in seinem Kommentar zu diesem Beitrag sagte, starten Sie eine neue Shell mit dem folgenden Befehl, um die installierte Version von gcc tatsächlich zu verwenden.

scl enable devtoolset-3 bash
Susam Pal
quelle
1
Um die installierte Version von gcc tatsächlich zu verwenden, starten Sie eine neue Shell mitscl enable devtoolset-3 bash
Michael
@Michael Danke, dass du das erwähnt hast. Ich habe Ihren Kommentar jetzt in meine Antwort aufgenommen, um die Antwort hilfreicher zu machen.
Susam Pal
Hat auch bei mir nicht funktioniert. Dasselbe wie für Jesses Antwort
BT