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.