Как установить 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(он запускает новую оболочку со всеми установленными переменными).
Марцин

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»
Пол Прает

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 теперь используется как upstream (как версия 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после установки? Это должно работать, чтобы получить правильные компиляторы на пути.
Марк Лаката

это на самом деле работает лучше, чем экспорт!
Джемилойи

@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/… )
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\*

1
что делает hash -r?
codecowboy

ln -s / opt / rh / devtoolset-2 / root / usr / bin / * / usr / local / bin / broken sudo в моей системе 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.