Como instalar o gcc 4.7.x / 4.8.x no CentOS


88

Qual seria a maneira mais fácil de instalar o gcc4.7.x / 4.8.x em um sistema com o CentOS 6.2+? O pacote RPM padrão contém uma versão mais antiga do gcc.

Respostas:


67

Tru Huynh, do centos.org, criou o conjunto de ferramentas para desenvolvedores redhat 1.1 , para centos, e contém o gcc 4.7.2

Então você pode simplesmente usar seu repositório e instalar apenas o gcc, instantaneamente.

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

Isso o instalará provavelmente no /opt/centos/devtoolset-1.1/root/usr/bin/

Em seguida, você pode dizer ao seu processo de compilação para usar o gcc 4.7 em vez de 4.4 com a variável 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
running yum --enablerepo=testing-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++retorna um quatro-quatro-quatro, ..: image

1
não se esqueça de yum clean allantes de fazer os passos novamente após falha mais você ainda vai ter 404

6
em vez de definir variáveis ​​individuais, você pode fazer scl enable devtoolset-1.1 bash(ele inicia um novo shell com todas as variáveis ​​definidas).
Marcin

13
Para g ++ 4.8.2, mude 1.1para 2qualquer lugar e mude --enablerepo=testing-1.1-devtools-6para--enablerepo=testing-devtools-2-centos-6
dwurf

3
Isso ainda funciona? Recebo people.centos.org/tru/devtools-2/6Workstation/i386/RPMS/… : [Erro 14] ERRO PYCURL 22 - "O URL solicitado retornou erro: 404"
Paul Praet

42

Aqui está como obter o devtoolset-2 (incluindo o gcc 4.8.1)

Isso foi retirado de 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++

Problemas conhecidos:

  • pacotes não assinados
  • O CentOS-6 devtoolset-2 precisa do devtoolset-2-ide que contém toda a pilha Eclipse, mas ainda não foi construída
  • CentOS-6 todo o arquivo relacionado ao maven também não é construído

Principais mudanças do devtools-1.1:

  • /opt/centos não é mais usado
  • /opt/rh agora é usado como upstream (como versão SL)

1
Eu tive que exportá-las para que funcionasse. Obrigado! exportar CC = / opt / rh / devtoolset-2 / raiz / usr / bin / gcc exportar CXX = / opt / rh / devtoolset-2 / raiz / usr / bin / c ++ exportar CPP = / opt / rh / devtoolset-2 / root / usr / bin / cpp
jemiloii 9/16

2
@JemiloII - você fez scl enable devtoolset-2após a instalação? Isso deve funcionar para colocar os compiladores corretos no caminho.
precisa saber é o seguinte

que realmente funciona melhor que as exportações!
precisa saber é

@MarkLakata - Running scl enable devtoolset-2lança o seguinte erroNeed at least 3 arguments. Run scl --help to get help.
Swanidhi

3
@Swanidhi O comando completo é scl enable devtoolset-2 bashonde o último campo pode ser diferente se você não estiver usando o bash.
MarkLakata


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
o que hash -rfaz?
Codecowboy 12/01

ln -s / opt / rh / devtoolset-2 / root / usr / bin / * / usr / local / bin / quebrou o sudo no meu sistema Centos 6.7. Eu acho que pode ser o sudo.
Codecowboy 13/01/16

@codecowboy $PATHcada vez que você digitar um comando, armazenando os resultados na memória, hash -rforça de recarga $ PATH
Denis Denisov

@ Denji - aparentemente, o site hop5.in não existe mais.
Slm

pode precisar adicionar --nogpgcheckopção: sudo yum install --nogpgcheck devtoolset-3
FooBee

2

Pelo que posso ver no gnu gcc , a versão estável mais recente é a 4.62. A versão 4.7 pode ser baixada e compilada, mais informações sobre a instalação do gcc .


Eu perguntei sobre o 4.7 porque ele deveria ter alguns recursos do C ++ 11 que eu preciso (portando de Clang).
Tomas Andrle

Então, além de compilar a partir da fonte, não existe, digamos, site que tenha alguns rpms que eu possa usar?
Tomas Andrle

Não que eu saiba, mas não tenho muito conhecimento sobre o assunto. O repositório RPM normalmente inclui o RPM apenas em sua forma estável.
precisa saber é

2

nenhuma dessas respostas funcionou para mim.
mesmo no shell do devtoolset ainda é visto meu gcc 4.4.7.
Meu truque foi o seguinte:

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

1

há um problema com o devtool1.1, então eu fiz algumas alterações - finalmente, funcionou para mim: primeira execução

yum clean all

do que :

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

agora abra /etc/yum.repos.d/devtools-1.1.repo e mude de:

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

(se você estiver usando x86_64) para:

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

ou ((se você estiver usando x86))

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

e finalmente execute:

yum install devtoolset-1.1

0

Uma maneira de conseguir isso seria buscar srcRPMs nos repositórios do fedora e recompilá-los para o seu sistema de destino.
Fedora 17e depois fornecergcc 4.7

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.