Aktualisierung auf die neuesten gcc und g ++ unter Ubuntu 16.04


11

Ich habe kürzlich versucht, ein Downgrade auf gcc 4.7 durchzuführen, da ein CFD-Code, an dem ich arbeitete, nicht mit der neuesten gcc-Version kompiliert wurde. Aber nach vielen Fehlern und dem Code, der immer noch nicht kompiliert wurde, gab ich auf und würde gerne zu den neuesten gcc- und g ++ - Compilern zurückkehren, aber es scheint, als hätte ich etwas durcheinander gebracht.

Wenn ich es tue:

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

oder sogar gcc-5.1 g ++ - 5.1 für diese Angelegenheit, es gibt mir den folgenden Fehler

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'

und ich habe es auch schon einmal versucht

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

aber es scheint nicht zu funktionieren. Endlich, wenn ich es gerade tue

sudo apt-get install gcc

es sagt

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

Ich weiß, dass ich noch Alternativen installieren und konfigurieren muss, aber das funktioniert auch nicht wie folgt

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

Entschuldigung, das hat ziemlich lange gedauert und bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Vielen Dank!

EDIT: Ich habe es tatsächlich zum Laufen gebracht, indem ich gcc-5.3 im obigen Code in gcc-5 geändert habe, da dies in usr / bin so zu sein schien. Ich werde es für zukünftige Referenz aufbewahren, wenn jemand vor dem gleichen Problem steht.


2
AFAIK gcc und g ++ werden standardmäßig nicht als Update-Alternativen installiert. Stattdessen installieren die Pakete gccund g++dependency direkt Links zu den Standardabhängigkeiten, z /usr/bin/g++ -> g++-5. Haben Sie versucht, die Pakete gccund einfach neu zu installieren g++?
Steeldriver

Eine Möglichkeit, diese Art von Problemen zu vermeiden, besteht darin, eine VM zu erstellen und die alte Compilerversion dort zu installieren.
NZD

Dieser Hotfix kann in der Installation behoben werden. Lesen von Paketlisten ... Fertig Erstellen des Abhängigkeitsbaums Lesen von Statusinformationen ... Fertig gcc ist bereits die neueste Version (4: 7.3.0-3ubuntu2.1). 0 aktualisiert, 0 neu installiert, 0 entfernt und 36 nicht aktualisiert.
JOC KERS

Antworten:


5

Führen Sie die folgenden Befehle nacheinander aus. Ich habe den gleichen Fehler bekommen. Das hat bei mir funktioniert.

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

9
Warum wurde sudo apt-get updatedreimal statt nur beim ersten Mal ausgeführt? Insbesondere warum nach der letzten Paketinstallation?
Eliah Kagan

Was genau macht der gcc-Snapshot? Wie kann ich die vorherige gcc-Version (4.8.4) entfernen?
Abunickabhi

0

Das apt-get-Update muss ausgeführt werden, damit Ihr Computer auf das gerade hinzugefügte Repository zugreifen und dessen Inhalt für Sie verfügbar machen kann. Wenn Sie es nicht ausführen, ist Ihrem Computer nicht bekannt, dass ihm diese Repositorys-Informationen zur Verfügung stehen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.