Як встановити gcc 4.7.x / 4.8.x на CentOS


88

Який був би найпростіший спосіб встановити gcc4.7.x / 4.8.x в систему з CentOS 6.2+? Пакет RPM за замовчуванням містить старішу версію gcc.

Відповіді:


67

Tru Huynh з centos.org створив набір інструментів для розробників Redhat 1.1 для centos і містить gcc 4.7.2

Таким чином, ви можете просто скористатися його репо і встановити просто 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++

Це встановить це, швидше за все, в /opt/centos/devtoolset-1.1/root/usr/bin/

Тоді ви можете сказати вашому процесу компіляції використовувати gcc 4.7 замість 4.4 зі змінною 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
біг yum --enablerepo=testing-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++повертає чотири-о-чотири, ..: image

1
не забувайте yum clean allперед тим, як робити кроки знову після відмови, все одно ви отримаєте 404

6
замість встановлення окремих змінних, які ви можете зробити scl enable devtoolset-1.1 bash(він запускає нову оболонку з усіма встановленими змінними).
marcin

13
Для g ++ 4.8.2 перейдіть 1.1на 2всюди та перейдіть --enablerepo=testing-1.1-devtools-6на--enablerepo=testing-devtools-2-centos-6
dwurf

3
Це все ще працює? Я отримую people.centos.org/tru/devtools-2/6Workstation/i386/RPMS/… : [Errno 14] PYCURL ERROR 22 - "Запитана URL-адреса повернута помилка: 404"
Paul Praet

42

Ось як отримати devtoolset-2 (включаючи gcc 4.8.1)

Це було взято з 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++

Відомі проблеми:

  • неподписані пакети
  • CentOS-6 devtoolset-2 потребує devtoolset-2-ide, який містить весь стек Eclipse, але ще не створюється
  • У CentOS-6 також не створені всі файли, пов'язані з Maven

Основні зміни від devtools-1.1:

  • /opt/centos більше не використовується
  • /opt/rh зараз використовується як верхня частина (як версія SL)

1
Мені довелося експортувати це, щоб воно працювало. Дякую! експорт CC = / opt / rh / devtoolset-2 / root / usr / bin / gcc export CXX = / opt / rh / devtoolset-2 / root / usr / bin / c ++ експорт CPP = / opt / rh / devtoolset-2 / root / usr / bin / cpp
jemiloii

2
@JemiloII - ви це зробили scl enable devtoolset-2після встановлення? Це повинно працювати для отримання правильних компіляторів на шляху.
Марк Лаката

що насправді працює краще, ніж експорт!
jemiloii

@MarkLakata - Біг scl enable devtoolset-2кидає таку помилкуNeed at least 3 arguments. Run scl --help to get help.
Swanidhi

3
@Swanidhi Повна команда - це те, scl enable devtoolset-2 bashде останнє поле може бути іншим, якщо ви не використовуєте bash.
Марк Лаката

30

Існує нова версія devtoolset 2.0. Приємні люди з Cern, які працюють над Scientific Linux, створили відкриту версію :

Якщо ви використовуєте CentOS (не Scientific Linux), вам доведеться імпортувати звідси їхній GPG-ключ, використовуючи:

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

Насолоджуйтесь!


1
посилання вище порушено зараз, я знайшов подібний ключ тут: [ftp.riken.jp] ( ftp.riken.jp/Linux/cern/slc58/x86_64/RPM-GPG-KEYs/… )
Ремо Харсоно

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
що робить hash -r?
codecowboy

ln -s / opt / rh / devtoolset-2 / root / usr / bin / * / usr / local / bin / розбив судо в моїй системі Centos 6.7. Я думаю, це може бути псевдонім sudo.
codecowboy

@codecowboy $PATHкожного разу, коли ви вводите команду, кешуючи результати в пам'яті, примушуйте hash -rперезавантажувати $ PATH
Денис Денисов

@Denji - мабуть, сайту hop5.in більше немає.
slm

може знадобитися додати --nogpgcheckваріант: sudo yum install --nogpgcheck devtoolset-3
FooBee

2

Як я бачу з gnu gcc , остання стабільна версія - 4,62. Можна завантажити та компілювати версію 4.7, більше інформації про встановлення gcc .


Я запитав про 4.7, оскільки він повинен мати деякі функції C ++ 11, які мені потрібні (перенесення від Clang).
Томаш Андрле

Отже, крім компіляції з джерела, немає, скажімо, веб-сайту, який би мав деякі rpms, які я міг би використати?
Томаш Андрле

Не те, що мені відомо, але я не дуже обізнаний з цією темою. RPM сховище типово включає RPM тільки в його стабільній формі.
bbaja42

2

жодна з цих відповідей не працювала для мене.
навіть в оболонці devtoolset все ще помічений мій gcc 4.4.7.
Моя хитрість полягала в наступному:

mv /usr/bin/gcc /usr/bin/gcc.bckup
ln -s /opt/centos/devtoolset-1.1/root/usr/bin/gcc /usr/bin/gcc

1

є проблема з devtool1.1, тому я вніс деякі зміни - нарешті, це спрацювало для мене: спочатку запустіть

yum clean all

ніж:

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

тепер відкрити /etc/yum.repos.d/devtools-1.1.repo та змінити з:

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

(якщо ви використовуєте x86_64) для:

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

або ((якщо ви використовуєте x86))

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

і нарешті біжи:

yum install devtoolset-1.1

0

Одним із способів досягти цього було б отримання srcRPM з сховищ Fedora та їх перекомпіляція для вашої цільової системи.
Fedora 17а пізніше надаватиgcc 4.7

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.