Jak zainstalować gcc 4.7.x / 4.8.x na CentOS

88

Jaki byłby najłatwiejszy sposób instalacji gcc4.7.x / 4.8.x w systemie z CentOS 6.2+? Domyślny pakiet RPM zawiera starszą wersję gcc.

Tomas Andrle
źródło

Odpowiedzi:

67

Tru Huynh z centos.org zbudował zestaw narzędzi redhat dla programistów 1.1 dla centos i zawiera gcc 4.7.2

Abyś mógł po prostu użyć jego repozytorium i natychmiast zainstalować gcc.

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

Spowoduje to zainstalowanie go najprawdopodobniej w /opt/centos/devtoolset-1.1/root/usr/bin/

Następnie możesz powiedzieć procesowi kompilacji, aby używał gcc 4.7 zamiast 4.4 ze zmienną 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_
źródło
4
bieganie yum --enablerepo=testing-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++zwraca cztery-o-cztery ..: zdjęcie
1
nie zapomnij yum clean allprzed ponownym wykonaniem kroków po awarii, w przeciwnym razie nadal otrzymasz 404
6
zamiast ustawiać poszczególne zmienne, które możesz zrobić scl enable devtoolset-1.1 bash(uruchamia nową powłokę ze wszystkimi ustawionymi zmiennymi).
marcin
13
Dla g ++ 4.8.2 zmień 1.1na 2wszędzie i zmień --enablerepo=testing-1.1-devtools-6na--enablerepo=testing-devtools-2-centos-6
dwurf
3
Czy to nadal działa? Dostaję people.centos.org/tru/devtools-2/6Workstation/i386/RPMS/… : [Errno 14] PYCURL ERROR 22 - „Żądany adres URL zwrócił błąd: 404”
Paul Praet
42

Oto jak zdobyć devtoolset-2 (w tym gcc 4.8.1)

To zostało zaczerpnięte z 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++

Znane problemy:

  • niepodpisane paczki
  • CentOS-6 devtoolset-2 potrzebuje devtoolset-2-ide, który zawiera cały stos Eclipse, ale jeszcze nie buduje
  • CentOS-6 wszystkie pliki związane z maven również nie są budowane

Główne zmiany w stosunku do devtools-1.1:

  • /opt/centos nie jest już używany
  • /opt/rh jest teraz używany jako upstream (jako wersja SL)
Mark Lakata
źródło
1
Musiałem je wyeksportować, aby działało. Dzięki! eksport CC = / opt / rh / devtoolset-2 / root / usr / bin / gcc eksport CXX = / opt / rh / devtoolset-2 / root / usr / bin / c ++ eksport CPP = / opt / rh / devtoolset-2 / root / usr / bin / cpp
jemiloii
2
@JemiloII - zrobiłeś to scl enable devtoolset-2po instalacji? To powinno działać, aby uzyskać właściwe kompilatory na ścieżce.
Mark Lakata,
to faktycznie działa lepiej niż eksport!
jemiloii,
@MarkLakata - Uruchomienie scl enable devtoolset-2generuje następujący błądNeed at least 3 arguments. Run scl --help to get help.
Swanidhi,
3
@Swanidhi Pełna komenda to miejsce, w scl enable devtoolset-2 bashktórym ostatnie pole może być inne, jeśli nie używasz bash.
Mark Lakata,
30

Nowa wersja devtoolset 2.0. Mili ludzie z Cern pracujący nad Scientific Linux stworzyli otwartą wersję :

Jeśli używasz CentOS (nie Scientific Linux), musisz zaimportować stąd ich klucz GPG , używając:

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

Cieszyć się!

JiriHnidek
źródło
1
powyższy link jest zepsuty, znalazłem podobny klucz tutaj: [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
źródło
1
Co ma hash -rzrobić?
codecowboy
ln -s / opt / rh / devtoolset-2 / root / usr / bin / * / usr / local / bin / broke sudo w moim systemie Centos 6.7. Myślę, że może to być pseudonim sudo.
codecowboy
@codecowboy za $PATHkażdym razem, gdy wpisujesz polecenie, buforując wyniki w pamięci, hash -rwymuszaj przeładowanie $ PATH
Denis Denisov
@Denji - najwyraźniej strona hop5.in już nie istnieje.
slm
może wymagać dodania --nogpgcheckopcji: sudo yum install --nogpgcheck devtoolset-3
FooBee,
2

Z tego, co widzę z gnu gcc , najnowsza stabilna wersja to 4.62. Wersję 4.7 można pobrać i skompilować, więcej informacji na temat instalacji gcc .

bbaja42
źródło
Zapytałem o 4.7, ponieważ powinien on posiadać pewne funkcje C ++ 11, których potrzebuję (portowanie z Clanga).
Tomas Andrle
Więc oprócz kompilacji ze źródła nie ma, powiedzmy, strony internetowej, która miałaby kilka rpms, których mógłbym użyć?
Tomas Andrle
Nie, że jestem tego świadomy, ale nie mam zbyt dużej wiedzy na ten temat. Repozytorium RPM zwykle zawiera RPM tylko w stabilnej formie.
bbaja42
2

żadna z tych odpowiedzi nie działała dla mnie.
nawet w skorupie devtoolset wciąż widać moją gcc 4.4.7.
Moja sztuczka była następująca:

mv /usr/bin/gcc /usr/bin/gcc.bckup
ln -s /opt/centos/devtoolset-1.1/root/usr/bin/gcc /usr/bin/gcc
Dylan Westra
źródło
1

jest problem z devtool1.1, więc zrobiłem kilka zmian - w końcu to zadziałało dla mnie: pierwsze uruchomienie

yum clean all

niż :

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

teraz otwórz /etc/yum.repos.d/devtools-1.1.repo i zmień z:

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

(jeśli używasz x86_64) do:

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

lub ((jeśli używasz x86))

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

i w końcu uruchomić:

yum install devtoolset-1.1
yehudahs
źródło
0

Jednym ze sposobów osiągnięcia tego byłoby pobranie srcRPM z repozytoriów fedora i ponowne skompilowanie ich dla systemu docelowego.
Fedora 17a później zapewnićgcc 4.7

użytkownik1055604
źródło