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.

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

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)

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,


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\*

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 .


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

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

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.