Actualización a los últimos gcc y g ++ en Ubuntu 16.04

11

Recientemente intenté bajar a gcc 4.7 ya que un código cfd en el que estaba trabajando no se compilaba con la última versión de gcc. Pero después de muchos errores y el código aún no se compila, me di por vencido y me gustaría volver a los últimos compiladores de gcc y g ++, sin embargo, parece que he estropeado algo.

Cuando lo hago:

sudo update-alternatives --remove-all gcc 
sudo update-alternatives --remove-all g++
sudo apt-get install gcc-6.2 g++-6.2

o incluso gcc-5.1 g ++ - 5.1 para el caso, me da el siguiente error

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package gcc-6.2
E: Couldn't find any package by glob 'gcc-6.2'
E: Couldn't find any package by regex 'gcc-6.2'
E: Unable to locate package g++-6.2
E: Couldn't find any package by glob 'g++-6.2'
E: Couldn't find any package by regex 'g++-6.2'

y también intenté hacer esto antes

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-6.2 g++-6.2

Pero no parece funcionar. Finalmente cuando acabo de hacer

sudo apt-get install gcc

dice

Reading package lists... Done
Building dependency tree       
Reading state information... Done
gcc is already the newest version (4:5.3.1-1ubuntu1).

Sé que todavía necesito instalar y configurar alternativas, pero hacerlo no funciona de la siguiente manera

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5.3 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5.3 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

Lo sentimos, esto terminó bastante tiempo y avíseme si necesita más información. ¡Gracias!

EDITAR: De hecho, lo hice funcionar cambiando gcc-5.3 a gcc-5 en el código anterior, ya que parecía ser lo que se llama en usr / bin. Lo guardaré para referencia futura si alguien enfrenta el mismo problema.

thephysicsguy
fuente
2
Que yo sepa gcc y g ++ no instale como alternativas de actualización por defecto - en cambio, el gccy g++paquetes de dependencias para instalar los enlaces directos a las dependencias predeterminadas, como /usr/bin/g++ -> g++-5. ¿Has intentado simplemente reinstalar los paquetes gccy g++?
steeldriver
Una forma de evitar este tipo de problemas es crear una VM e instalar la versión antigua del compilador allí.
NZD
Este hotfix puede repararse en la instalación. Lectura de listas de paquetes ... Listo. Creación del árbol de dependencias. Lectura de información de estado ... Hecho. Gcc ya es la versión más reciente (4: 7.3.0-3ubuntu2.1). 0 actualizado, 0 recién instalado, 0 para eliminar y 36 no actualizado.
JOC KERS

Respuestas:

5

Ejecute los siguientes comandos en secuencia. Estaba recibiendo el mismo error. Esto funcionó para mí.

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-snapshot
sudo apt-get install gcc-6 g++-6
Milind
fuente
99
¿Por qué sudo apt-get updatese debe ejecutar tres veces en lugar de solo la primera vez? En particular, ¿ por qué después de la última instalación del paquete?
Eliah Kagan
¿Qué hace exactamente la instantánea gcc? ¿Cómo puedo eliminar la versión anterior de gcc (4.8.4)?
abunickabhi
0

La actualización de apt-get debe ejecutarse para que su computadora acceda al repositorio que se acaba de agregar, haciendo que su contenido esté disponible para usted. Si no lo ejecuta, su computadora no es consciente de que tiene disponible la información de los repositorios.

def
fuente