Ich habe einen RHEL 6 Server mit gcc Version 4.4.7. Ich wollte die gcc-Version aktualisieren (ich denke, die aktuelle ist 4.8). Yum Update funktioniert nicht. Auch SO-Antworten auf eine ähnliche Frage unter CentOS funktionieren nicht. Ich habe die Methoden in der akzeptierten Antwort befolgt. Die Ausgabe lautet "Fehler beim Abrufen der Repository-Daten zum Testen von 1.1-devtools-6, Repository nicht gefunden". Ich bin mir auch nicht sicher, ob ich die Methoden für CentOs befolgen soll.
Hat jemand gcc in RHEL 6 x86_64 Server aktualisiert?
Antworten:
Die mit Abstand einfachste Methode besteht darin, einen binären Build zu verwenden, der über ein YUM-Repository bereitgestellt wird.
Eine solche Option wäre die Verwendung des Repositorys hop5.in. Speziell diese Seite: gcc - Verschiedene Compiler (C, C ++, Objective-C, Java, ...) . Sie bieten 4.8.2, das mit CentOS 6.3 oder 6.4 funktionieren sollte. Möglicherweise möchten Sie vorher ein Update durchführen:Die andere Möglichkeit besteht darin, das Developer Toolset zu verwenden , insbesondere die von Scientific Linux bereitgestellte gebündelte Version.
Befolgen Sie die Installationsanweisungen, um die folgenden 2 Schritte auszuführen:
Repositorys hinzufügen installiere devtoolsetUpdate Nr. 1
Das hop5.in YUM-Repository scheint entfernt worden zu sein, daher besteht die einzige Möglichkeit darin, die oben hervorgehobene devtoolset-Methode zu verwenden.
Weitere Beispiele für die Installation über devtoolset finden Sie in diesem GitHub-Gist: Installieren von gcc 4.8 und Linuxbrew unter CentOS 6 .
quelle
http://ftp.scientificlinux.org/linux/scientific/5x/x86_64/RPM-GPG-KEYs/RPM-GPG-KEY-cern
. Ich finde es toll, dass die Seite kein https hat. Weiter so, Scilinux. Nachdem Sie es (tmp - Verzeichnis oder whever) herunterladen, importieren Sie sie mitrpm --import RPM-GPG-KEY-cern
und dann tunyum install.
devtoolset-2-gcc
(zumindest für mich) ein Dutzend Pakete und ein Download von 35 MB installiert wurden, gegenüber 280 Paketen und einem Download von 575 MB füryum install devtoolset-2
.Red Hat Software Collections wird mit GCC 4.9 geliefert. Sie können diesen Kanal aktivieren.
quelle
Ich habe jetzt für mehrere Versionen neuere gcc-Versionen für rhel6 erstellt (seit 4.7.x bis 5.3.1).
Der Prozess ist dank Redhats Jakub Jelinek Fedora Gcc Builds auf Koji ziemlich einfach
Holen Sie sich einfach die neueste src-Drehzahl für die gewünschte Version (z . B. 5.3.1 ).
Grundsätzlich würden Sie zunächst die Build-Anforderungen ermitteln, indem Sie
rpm -qpR src.rpm
nach Versionsanforderungen suchen:Jetzt kommt der mühsame Teil - jedes Paket, dessen Version höher ist als die von yum für Ihre Distribution bereitgestellte, muss von Koji heruntergeladen werden und den Vorgang rekursiv wiederholen, bis alle Abhängigkeitsanforderungen erfüllt sind.
Ich betrüge übrigens.
Normalerweise packe ich die Drehzahl neu, um einen korrekten Build-Baum zu verwenden, indem ich die gnu-Funktion verwende, um korrekt platzierte und benannte Anforderungen zu verwenden. Daher werden gmp / mpc / mpfr / isl (Cloog ist nicht mehr erforderlich) heruntergeladen und in den richtigen Pfad verschoben, und der neue (aufgeblähter) Teer wird in eine neue src-Drehzahl (mit geringfügigen Änderungen an der Spezifikationsdatei) ohne Abhängigkeit von den gepackten (RPM-) Versionen umgebaut. Da ich weiß, dass niemand ADA verwendet, entferne ich einfach die Teile, die sich auf Mücken beziehen, aus der Spezifikationsdatei, was den Erstellungsprozess weiter vereinfacht und mir nur Binutils übrig lässt, über die ich mir Sorgen machen muss.
Gcc kann tatsächlich mit älteren Binutils erstellen. Wenn Sie es also eilig haben, bearbeiten Sie die Spezifikationsdatei weiter, um die Binutils-Version zu benötigen, die bereits auf Ihrem System vorhanden ist. Dies führt zu einem leicht verkrüppelten gcc, aber meistens funktioniert es gut genug.
Das funktioniert meistens ganz gut.
UPDATE 1
Die einfachste Methode zum Öffnen einer src-Drehzahl ist wahrscheinlich, die Drehzahl zu installieren und auf alles unter ~ / rpmbuild zuzugreifen, aber ich bevorzuge
Sie haben auch die Wahl, das Präfix festzulegen, damit diese Drehzahl nebeneinander installiert wird, ohne die Drehzahl der Distribution zu unterbrechen (erfordert jedoch eine Namensänderung und einige Änderungen an den internen Paketnamen). Normalerweise füge ich ein Umgebungsmodul hinzu, damit ich diesen gcc nach Bedarf (ähnlich wie Sammlungen funktionieren) als Teil der Drehzahl laden und entladen kann (also füge ich eine neue Abhängigkeit hinzu).
Erstellen Sie schließlich den RPM-Build-Baum und platzieren Sie die Dateien dort, wo sie erstellt werden sollen:
UPDATE 2
Normalerweise sollte man kein "Server" -OS für die Entwicklung verwenden - deshalb haben Sie Fedora, das bereits mit dem neuesten gcc geliefert wird. Ich habe einige spezielle Anforderungen, aber Sie sollten wirklich in Betracht ziehen, das richtige Tool für die Aufgabe zu verwenden - rhel / centos, um Produktions-Apps auszuführen, fedora, um diese Apps zu entwickeln usw.
quelle
Hey Leute, hier ist was ich getan habe (von Grund auf neu kompiliert). Keine Beleidigung für eine andere Antwort Ich bin sicher, dass es funktioniert, aber GCC ist besonders wichtig für die Sicherheit, daher ziehe ich es vor, aus der ursprünglichen und offiziellen Quelle zu kompilieren:
Quelle: http://realtechtalk.com/GCC_5_on_Centos_6_How_To_Install-1965-articles
quelle
Sie können versuchen, gcc source buid.GCC benötigt MPC, MPFR und GMP als Voraussetzungen. Für GCC 4.8 sind die Versionsabhängigkeiten MPC 0.8 GMP 6.0 MPFR 2.4.2. Laden Sie die Quellpakete herunter und installieren Sie alle Pakete unter / usr / lib Die Reihenfolge der Installation ist gmp, mpfr, mpc
quelle