Обновление до последней версии gcc и g ++ в Ubuntu 16.04

11

Недавно я попытался перейти на gcc 4.7, так как код cfd, над которым я работал, не компилировался с последней версией gcc. Но после многих ошибок и кода, по-прежнему не компилируемого, я сдался и хотел бы вернуться к последним компиляторам gcc и g ++, однако, возможно, я что-то напутал.

Когда я делаю:

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

или даже gcc-5.1 g ++ - 5.1 в этом отношении, это дает мне следующую ошибку

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'

и я тоже пытался сделать это раньше

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

но это не похоже на работу. Наконец, когда я просто делаю

sudo apt-get install gcc

это говорит

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

Я знаю, что мне все еще нужно устанавливать и настраивать альтернативы, но выполнение этого не работает либо следующим образом

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++

Извините, это закончилось довольно долго, и, пожалуйста, дайте мне знать, если вам нужно больше информации. Благодарность!

РЕДАКТИРОВАТЬ: я на самом деле заставил его работать, изменив gcc-5.3 на gcc-5 в приведенном выше коде, как это было похоже на то, что он называется в usr / bin. Я буду хранить его для дальнейшего использования, если кто-то столкнется с той же проблемой.

thephysicsguy
источник
2
AFAIK gcc и g ++ не устанавливаются как альтернативы обновления по умолчанию - вместо этого пакеты gccи g++зависимости устанавливают прямые ссылки на зависимости по умолчанию, например /usr/bin/g++ -> g++-5. Пытались ли вы просто переустановить gccи g++пакеты?
SteelDriver
Один из способов избежать подобных проблем - создать виртуальную машину и установить в нее старую версию компилятора.
NZD
Это исправление может быть исправлено в установке Чтение списков пакетов ... Готово Построение дерева зависимостей Чтение информации о состоянии ... Готово gcc уже самая новая версия (4: 7.3.0-3ubuntu2.1). 0 обновлено, 0 вновь установлено, 0 для удаления и 36 не обновлено.
JOC KERS

Ответы:

5

Выполните следующие команды в последовательности. Я получаю ту же ошибку. Это сработало для меня.

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
источник
9
Почему sudo apt-get updateнужно запускать три раза, а не только в первый раз? В частности, почему после последней установки пакета?
Элия ​​Каган
Что именно делает gcc-снимок? Как я могу удалить предыдущую версию gcc (4.8.4)?
abunickabhi
0

Необходимо запустить обновление apt-get, чтобы ваш компьютер получил доступ к только что добавленному хранилищу, сделав его доступным для вас. Если вы не запускаете его, значит, ваш компьютер не знает, что на нем есть информация о репозиториях.

Защита
источник