Instalando uma versão antiga do gcc (3.4.3) no Ubuntu 14.04 (atualmente 4.8 instalado)

4

Eu tenho o gcc 4.8 instalado, mas também preciso instalar o gcc 3.4.3. Eu segui estes passos:

  1. Baixou o gcc 3.4.3 de gcc.parentingamerica.com/releases.
  2. Extraiu o tar.
  3. ./ configure
  4. fazer

Em seguida, ele lança este erro: link

Por favor, alguém pode sugerir o que está errado e também como pedir ao gcc para usar a versão mais antiga, uma vez instalada?

SO: Ubuntu 14.04 LTS, 64 bits

    
por user7706975 08.06.2017 / 12:27

2 respostas

6

Verifique sua versão atual executando gcc -v .

Em seguida, Você quer instalar uma versão anterior.

  1. Para gcc-3.4

Como esta versão está disponível nas versões mais antigas do Ubuntu, precisamos ter os repositórios apropriados para a versão. De alguma pesquisa, descobri que eles são os seguintes, que devem ser adicionados ao /etc/apt/sources.list

deb     http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb-src http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb     http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
deb-src http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main

Depois de fazer sudo apt-get update , os novos repositórios estarão disponíveis.

Em seguida, instale o compilador necessário. Eu costumo instalar gcc e g++ da mesma versão para interoperabilidade. Para fins gerais, é recomendado.

Por isso,

sudo apt-get install gcc-3.4 g++-3.4

2. Verificando os compiladores disponíveis

Nesse estágio, um deles terá dois conjuntos de compiladores (um para cada g++ e gcc ). Estes podem ser verificados por dpkg --list | grep compiler ,

dpkg --list | grep compiler

dpkg --list | grep compile
ii  g++                                                   4:4.8.2-1ubuntu6                                    amd64        GNU C++ compiler
ii  g++-3.4                                               3.4.6-5                                             amd64        The GNU C++ compiler
ii  g++-4.8                                               4.8.4-2ubuntu1~14.04.1                              amd64        GNU C++ compiler
ii  gcc                                                   4:4.8.2-1ubuntu6                                    amd64        GNU C compiler
ii  gcc-3.4                                               3.4.6-5                                             amd64        The GNU C compiler
ii  gcc-4.8                                               4.8.4-2ubuntu1~14.04.1                              amd64        GNU C compiler
ii  hardening-includes                                    2.5ubuntu2.1                                        all          Makefile for enabling compiler flags for security hardening
ii  libllvm3.6:amd64                                      1:3.6-2ubuntu1~trusty1                              amd64        Modular compiler and toolchain technologies, runtime library
ii  libxkbcommon0:amd64                                   0.4.1-0ubuntu1                                      amd64        library interface to the XKB compiler - shared library
ii  pkg-config                                            0.26-1ubuntu4                                       amd64        manage compile and link flags for libraries

Você pode verificar o local de instalação se precisar.

Importante é a localização dos dois conjuntos de compiladores, que podem ser listados por

ls -lh /usr/bin/gcc*
lrwxrwxrwx 1 root root    7  5月 13  2016 /usr/bin/gcc -> gcc-4.8
-rwxr-xr-x 1 root root  91K  1月  4  2007 /usr/bin/gcc-3.4
-rwxr-xr-x 1 root root 758K  1月 27  2016 /usr/bin/gcc-4.8

e

    ls -lh /usr/bin/g++*
lrwxrwxrwx 1 root root    7  4月  8  2014 /usr/bin/g++ -> g++-4.8
-rwxr-xr-x 1 root root  93K  1月  4  2007 /usr/bin/g++-3.4
-rwxr-xr-x 1 root root 758K  1月 27  2016 /usr/bin/g++-4.8
  1. Selecionando um compilador para o propósito atual (criação de um aplicativo)

Depois de ter exigido compiladores instalados, pode-se simplesmente alternar entre os compiladores. Isso é feito atualizando a lista de versões alternativas de um aplicativo. Para fazer isso, o comando update-alternative deve ser executado com determinados parâmetros.

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 40 --slave /usr/bin/g++ g++ /usr/bin/g++-3.4
sudo update-alternatives --config gcc

Isso vinculará g++ a gcc e, ao alterar somente gcc , o g++ será alterado automaticamente.

Então, sempre que você quiser mudar o compilador, digite:

sudo update-alternatives --config gcc

Em seguida, o usuário é questionado sobre qual compilador escolher.

    sudo update-alternatives --config gcc
    There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

      Selection    Path              Priority   Status
    ------------------------------------------------------------
    * 0            /usr/bin/gcc-4.8   60        auto mode
      1            /usr/bin/gcc-3.4   40        manual mode
      2            /usr/bin/gcc-4.8   60        manual mode

Press enter to keep the current choice[*], or type selection number:

Aqui você pode escolher pressionando a tecla (0,1) e pressionando enter. A mudança na versão atual selecionada pode ser verificada por gcc -v

Removendo o update-alternative

  1. Se você quiser manter o compilador alternativo instalado. Em seguida, basta mudar para o modo automático em update-alternative , que é a opção 0.
  2. Se você quiser remover o compilador alternativo, remova o compilador como sudo apt-get remove gcc-3.4 g++-3.4 em seguida, execute

sudo update-alternatives --config gcc

O programa update-alternatives procurará por links e descobrirá que estão faltando e removerá automaticamente a alternativa, retornando à outra opção disponível.

sudo update-alternatives --config gcc
update-alternatives: warning: alternative /usr/bin/gcc-3.4 (part of link group gcc) doesn't exist; removing from list of alternatives
There is only one alternative in link group gcc (providing /usr/bin/gcc): /usr/bin/gcc-4.8
Nothing to configure.
    
por ankit7540 08.06.2017 / 12:43
0

Não é possível ter versões do mesmo pacote, pois elas seriam arquivos conflitantes, por exemplo: você teria problemas ao tentar atualizar um dos pacotes, pois eles seriam colocados no mesmo local.

Tendo dito que você tem a opção de fazer o downgrade da versão do programa para um mais antigo, aqui vem o como:

  1. abra um emulador de terminal e digite apt-cache showpkg <package-name> uma lista das versões disponíveis será impressa
  2. Em seguida, digite sudo apt-get install <package-name>=<package-version-number> para instalar a versão que você preferir
  3. digite apt-mark hold <package-name> isso evitará que o pacote seja atualizado
  4. se você tiver algum tipo de problema man apt para abrir o manual do comando
por Oriol Gonzalo 08.06.2017 / 12:49