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.

Tomas Andrle
fonte

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++
ck_
fonte
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)
Mark Lakata
fonte
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
30

Há uma nova versão do devtoolset 2.0. Pessoas legais do Cern trabalhando no Scientific Linux criaram uma versão aberta :

Se você usa o CentOS (não o Scientific Linux), precisará importar a chave GPG daqui usando:

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

Desfrutar!

JiriHnidek
fonte
1
o link acima está quebrado agora, encontrei uma chave semelhante aqui: [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\*
Denis Denisov
fonte
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 .

bbaja42
fonte
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
Dylan Westra
fonte
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
yehudahs
fonte
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

user1055604
fonte