Como instalar o gcc 5.3 com yum no CentOS 7.2?


94

Estou usando o CentOS 7.2

Quando eu uso yum groupinstall "Development Tools", a versão do gcc é 4.8.5, assim:

insira a descrição da imagem aqui

Eu gostaria de instalar o gcc 5.3

Como abordar isso yum?



@MohammadShahadatHossain Existe um yumrecurso em algum lugar?
luz do sol,

Não tenho certeza, mas neste caso você pode usar o recurso RPM a partir daqui. rpmfind.net/linux/rpm2html/search.php?query=gcc
Mohammad Shahadat Hossain

devtoolset agora fornece 5.3.1 - veja minha resposta abaixo para os comandos para habilitar e instalar usando yum.
tesch1

Respostas:


182

Atualização:
Freqüentemente as pessoas querem a versão mais recente do gcc, e o devtoolset está sendo mantido atualizado, então talvez você queira devtoolset-N onde N = {4,5,6,7 ...}, verifique o yum para o mais recente disponível em seu sistema). Atualizado os cmds abaixo para N = 7.

Existe um pacote para gcc-7.2.1 para devtoolset-7 como exemplo. Primeiro você precisa habilitar as coleções de software , então está disponível em devtoolset-7:

sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
scl enable devtoolset-7 bash
which gcc
gcc --version

2
a versão do gcc no devtoolset, entretanto, aumentou para 5.3.1
tesch1

4
Não só isso, mas você pode instalar devtoolset-6 para obter 6.2.1
Rahly

4
alterar o link simbólico não é a melhor coisa a fazer, já que provavelmente ele é de propriedade / gerenciado por outro pacote que pode ser atualizado. É melhor ativá-lo em seu login ou no script de login de todo o sistema com scl enable devtoolset-6 bashou . /opt/rh/devtoolset-6/bin/enable link atualizado para ferramentas de software docs
tesch1 01 de

1
A execução também yum install devtoolset-4-binutilspode ser útil para obter o conjunto de ferramentas GCC completo.
scrutari

5
Eu costumava source scl_source enable devtoolset-4trocar meu gcc atual pelo instalado pordevtoolset-4
WF

74

Atualização: Instalando a versão mais recente do gcc 9: ( gcc 9.3.0 ) - lançado em 12 de março de 2020 :

O mesmo método pode ser aplicado ao gcc 10 ( gcc 10.1.0 ) - lançado em 7 de maio de 2020

Baixar arquivo: gcc-9.3.0.tar.gz ou gcc-10.1.0.tar.gz

Compile e instale:

//required libraries: (some may already have been installed)
dnf install libmpc-devel mpfr-devel gmp-devel

//if dnf install libmpc-devel is not working try:
dnf --enablerepo=PowerTools install libmpc-devel

//install zlib
dnf install zlib-devel*

./configure --with-system-zlib --disable-multilib --enable-languages=c,c++

make -j 8 <== this may take around an hour or more to finish
              (depending on your cpu speed)

make install

Testado em CentOS 7.8.2003 para gcc 9.3 e gcc 10.1

Testado em CentOS 8.1.1911 para gcc 10.1 (pode levar mais tempo para compilar)

Resultados: gcc / g ++ 9.3.0 / 10.1.0

insira a descrição da imagem aqui insira a descrição da imagem aqui

Instalando o gcc 7.4 (gcc 7.4.0) - lançado em 6 de dezembro de 2018 :

Baixe o arquivo: https://ftp.gnu.org/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.gz

Compile e instale:

//required libraries:
yum install libmpc-devel mpfr-devel gmp-devel

./configure --with-system-zlib --disable-multilib --enable-languages=c,c++

make -j 8 <== this may take around 50 minutes or less to finish with 8 threads
              (depending on your cpu speed)


make install

Resultado:

insira a descrição da imagem aqui

Notas:

1. Esta resposta do Stack Overflow ajudará a ver como verificar o arquivo de origem baixado.

2. Use a opção --prefixde instalar o gcc em outro diretório diferente do padrão. O diretório de instalação de nível superior é padronizado como / usr / local. Leia sobre as opções de instalação do gcc


Por que fazer download de ftp.mirrorservice.org em vez de ftp.gnu.org? Você também deve baixar e verificar o .sigarquivo correspondente (a assinatura pgp).
Keith Thompson

Configurando como mostrado sem --prefix irá instalar em / usr / local / que pode ou não vir antes da instalação original do gcc em PATH
tim18

1
make -j $(nproc)
Chepe Questn

2
Isso me levou mais de 4 horas para compilar e mais de 6 GB de espaço no HDD.
iDevFS

Como tim18 sugeriu, é seguro correr make && make installsem ele --prefix? Se fizer isso, está tudo instalado no /usr/nem mesmo /usr/local, verifique o config.log:Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info ...
Celdor

6

Você pode usar o repositório centos-sclo-rh-testing para instalar o GCC v7 sem ter que compilá-lo para sempre, também habilite o V7 por padrão e permita que você alterne entre versões diferentes, se necessário.

sudo yum install -y yum-utils centos-release-scl;
sudo yum -y --enablerepo=centos-sclo-rh-testing install devtoolset-7-gcc;
echo "source /opt/rh/devtoolset-7/enable" | sudo tee -a /etc/profile;
source /opt/rh/devtoolset-7/enable;
gcc --version;

Embora este código possa responder à pergunta, é melhor explicar como resolver o problema e fornecer o código como um exemplo ou referência. Respostas somente em código podem ser confusas e não ter contexto.
Robert Columbia

Infelizmente, esta solução não atualiza o /usr/lib64/libstdc++.soarquivo para ter os símbolos mais recentes.
escamoso

5

A melhor abordagem para usar o yum e atualizar seu devtoolset é utilizar o repositório CentOS SCLo RH Testing.

yum install centos-release-scl-rh
yum --enablerepo=centos-sclo-rh-testing install devtoolset-7-gcc devtoolset-7-gcc-c++

Muitos pacotes adicionais também estão disponíveis, para ver todos eles

yum --enablerepo=centos-sclo-rh-testing list devtoolset-7*

Você pode usar este método para instalar qualquer versão da ferramenta dev, apenas troque o 7 para a versão desejada. devtoolset-6-gcc, devtoolset-5-gcc etc.


-11

Comando para instalar GCC e Ferramentas de Desenvolvimento em um servidor CentOS / RHEL 7

Digite o seguinte comando yum como usuário root:

yum group install "Ferramentas de Desenvolvimento"

OU

sudo yum group install "Ferramentas de Desenvolvimento"

Se o comando acima falhou, tente:

yum groupinstall "Ferramentas de Desenvolvimento"

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.