Atualize o GCC para a versão 6.3 [fechada]

10

Eu quero usar alguns recursos do C ++ disponíveis apenas nas versões mais recentes da linguagem. O problema é que o Ubuntu 15.04 (Vivid Vervet) possui 4.9.2 instalado e olhando para a saída que recebo do apt-get install gcc :

Reading package lists... Done
Building dependency tree       
Reading state information... Done
gcc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]

Diz que já é a versão mais recente. Não entendo o porquê ...

Fabrício Santana
fonte
1
O Ubuntu 15.04 não é mais suportado, talvez você deva mudar para uma versão mais recente. As versões antigas do Ubuntu geralmente não possuem as versões mais recentes dos pacotes, você precisa atualizar a distribuição ou instalar o pacote a partir de um ppa ou construí-lo a partir do código-fonte.
Raziman TV

Respostas:

10

A única opção existente é compilá-lo a partir de fontes , já que você está executando a versão Vivid (15.04) que atingiu a EOL (End Of Life).

  1. Faça o download do código fonte e seus pré-requisitos:

    wget https://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.bz2
    tar jxvf gcc-6.3.0.tar.bz2
    cd gcc-6.3.0
    ./contrib/download_prerequisites
    
  2. Compile as fontes (nota: este comando será diferente dependendo de onde você salvou o arquivo .bz2), você também pode modificar a opção de buildcomando. Nesse caso, usaremos a opção muito básica:

    cd ~
    mkdir gcc-build && cd gcc-build
    ../gcc-6.3.0/configure -v --prefix=$HOME/gcc-6.3.0
    

    NOTA : Verifique se você leu os documentos para visualizar a opção disponível.

  3. Agora estamos prontos para construir o gcc

    • Execute o makecomando para criar o gcc; essas etapas levarão muito tempo para serem concluídas.

      make
      
    • Quando a fase acima estiver concluída, você poderá instalar o gcc construído com:

      sudo make install
      

      Após a conclusão desse processo, execute o comando gcc --versionpara verificar se a instalação foi concluída com êxito.

Liso
fonte
O que a opção "-v" faz? Eu não consigo encontrá-lo no gcc.gnu.org/install/configure.html
Fabrício Santana
Para qual pasta o g ++ 6.3 está instalado ao seguir estas etapas? Para ~/gcc-6.3.0, para ~/gcc-buildou para alguma outra pasta? Nenhuma das pastas criadas deve ser removida após a execução desses comandos ou todas elas ainda são necessárias?
HelloGoodbye
1
tar xzvf gcc-6.3.0.tar.bz2apenas imprime gzip: stdin: not in gzip format; tar: Child returned status 1; tar: Error is not recoverable: exiting now, descompactei o arquivo morto com o gerenciador de arquivos.
HelloGoodbye
Quando eu corro ../gcc-6.3.0/configure -v --prefix=$HOME/gcc-6.3.0, eu recebo /usr/bin/ld: cannot find crt1.o: No such file or directory, /usr/bin/ld: cannot find crti.o: No such file or directory, /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a when searching for -lgcc, /usr/bin/ld: cannot find -lgcce erros semelhantes.
HelloGoodbye
4

O Ubuntu 15.04 chegou ao fim da vida útil e não tem suporte, o que significa que não serão publicadas mais atualizações ou correções (segurança, bugs ou recursos) .

Você deve atualizar ou reinstalar com uma versão mais recente do Ubuntu.

Eu recomendo a opção 16.10 (9 meses de suporte), que já possui uma filial do gcc 6.x em repositórios oficiais.

Mas você também pode usar o 16.04 LTS (suporte de 5 anos) e adicionar um ppa não confiável / não garantido para obter as últimas versões do gcc como esta

Pessoalmente, eu escolheria a 16.10 e continuaria atualizando dos canais oficiais para as versões posteriores do software / Ubuntu sem adicionar (principalmente) nenhum ppa.

dgonzalez
fonte