Aktualizacja do najnowszej wersji gcc i g ++ w systemie Ubuntu 16.04

11

Ostatnio próbowałem obniżyć wersję do gcc 4.7, ponieważ kod cfd, nad którym pracowałem, nie skompilował się z najnowszą wersją gcc. Ale po wielu błędach i wciąż nie kompilującym się kodzie poddałem się i chciałbym wrócić do najnowszych kompilatorów gcc i g ++, ale wygląda na to, że coś pomieszałem.

Kiedy robię:

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

lub nawet gcc-5.1 g ++ - 5.1 w tej kwestii, daje mi następujący błąd

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'

i próbowałem to zrobić wcześniej

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

ale wydaje się, że to nie działa. Wreszcie kiedy to zrobię

sudo apt-get install gcc

to mówi

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

Wiem, że nadal muszę instalować i konfigurować alternatywy, ale to nie działa w następujący sposób

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

Przepraszam, że skończyło się to dość długo i daj mi znać, jeśli potrzebujesz więcej informacji. Dzięki!

EDYCJA: Naprawdę działałem, zmieniając gcc-5.3 na gcc-5 w powyższym kodzie, ponieważ wydawało się, że tak to się nazywa w usr / bin. Zachowam ją do wykorzystania w przyszłości, jeśli ktoś napotka ten sam problem.

thephysicsguy
źródło
2
AFAIK gcc i g ++ nie instalują się domyślnie jako alternatywy aktualizacji - zamiast tego pakiety gcci g++zależności instalują bezpośrednie łącza do domyślnych zależności, takich jak /usr/bin/g++ -> g++-5. Czy próbowałeś po prostu ponownie zainstalować pakiety gcci g++?
steeldriver
Jednym ze sposobów uniknięcia tego typu problemów jest utworzenie maszyny wirtualnej i zainstalowanie tam starej wersji kompilatora.
NZD
Ta poprawka może zostać naprawiona w instalacji Czytanie list pakietów ... Gotowe Budowanie drzewa zależności Informacje o stanie odczytu ... Gotowe gcc jest już najnowszą wersją (4: 7.3.0-3ubuntu2.1). 0 zaktualizowanych, 0 nowo zainstalowanych, 0 do usunięcia i 36 niezaktualizowanych.
JOC KERS,

Odpowiedzi:

5

Uruchom kolejno następujące polecenia. Otrzymywałem ten sam błąd. To zadziałało dla mnie.

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
źródło
9
Dlaczego sudo apt-get updateuruchomiono go trzykrotnie zamiast pierwszego? W szczególności, dlaczego po ostatniej instalacji pakietu?
Eliah Kagan
Co dokładnie robi migawka gcc? Jak mogę usunąć poprzednią wersję gcc (4.8.4)?
abunickabhi
0

Aktualizacja apt-get musi zostać uruchomiona, aby komputer uzyskał dostęp do właśnie dodanego repozytorium, udostępniając w ten sposób jego zawartość. Jeśli go nie uruchomisz, komputer nie będzie wiedział, że ma dostępne informacje o repozytorium

def
źródło