Zaktualizuj GCC do wersji 6.3 [zamknięte]

10

Chcę użyć niektórych funkcji C ++ dostępnych tylko w nowszych wersjach języka. Problem polega na tym, że Ubuntu 15.04 (Vivid Vervet) ma zainstalowany 4.9.2 i patrząc na wyniki, które otrzymuję z apt-get install gcc :

Reading package lists... Done
Building dependency tree       
Reading state information... Done
gcc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]

Mówi, że to już najnowsza wersja. Nie rozumiem dlaczego ...

Fabrício Santana
źródło
1
Ubuntu 15.04 nie jest już obsługiwany, być może powinieneś przejść do nowszej wersji. Stare wersje Ubuntu zazwyczaj nie mają najnowszych wersji pakietów, musisz zaktualizować dystrybucję lub zainstalować pakiet z ppa lub skompilować ze źródła.
Raziman TV,

Odpowiedzi:

10

Jedyną opcją jest zbudowanie go ze źródeł , ponieważ używasz wersji Vivid (15.04), która osiągnęła EOL (End Of Life).

  1. Pobierz kod źródłowy i jego wymagania wstępne:

    wget https://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.bz2
    tar jxvf gcc-6.3.0.tar.bz2
    cd gcc-6.3.0
    ./contrib/download_prerequisites
    
  2. Kompilacji źródeł (uwaga: ta komenda będzie się różnić w zależności od tego, gdzie początkowo zapisywane archiwum .bz2), można również zmodyfikować opcje dla buildkomendy. W tym przypadku użyjemy bardzo podstawowej opcji:

    cd ~
    mkdir gcc-build && cd gcc-build
    ../gcc-6.3.0/configure -v --prefix=$HOME/gcc-6.3.0
    

    UWAGA : Upewnij się, że przeczytałeś dokumenty, aby wyświetlić dostępną opcję.

  3. Teraz jesteśmy gotowi do zbudowania gcc

    • Uruchom makepolecenie, aby zbudować gcc, wykonanie tych kroków zajmie dużo czasu.

      make
      
    • Po zakończeniu powyższej fazy możesz zainstalować wbudowany gcc za pomocą:

      sudo make install
      

      Po zakończeniu tego procesu uruchom polecenie, gcc --versionaby sprawdzić, czy instalacja zakończyła się pomyślnie.

Liso
źródło
Do czego służy opcja „-v”? Nie mogę go znaleźć na gcc.gnu.org/install/configure.html
Fabrício Santana
Do którego folderu jest zainstalowany g ++ 6.3 po wykonaniu tych kroków? Do ~/gcc-6.3.0, do ~/gcc-buildlub do innego folderu? Czy żaden z utworzonych folderów nie powinien zostać usunięty po uruchomieniu tych poleceń, czy wszystkie są nadal wymagane?
HelloGoodbye
1
tar xzvf gcc-6.3.0.tar.bz2po prostu drukuje gzip: stdin: not in gzip format; tar: Child returned status 1; tar: Error is not recoverable: exiting now, więc rozpakowałem archiwum za pomocą menedżera archiwów.
HelloGoodbye
Kiedy biegnę ../gcc-6.3.0/configure -v --prefix=$HOME/gcc-6.3.0, mam /usr/bin/ld: cannot find crt1.o: No such file or directory, /usr/bin/ld: cannot find crti.o: No such file or directory, /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a when searching for -lgcc, /usr/bin/ld: cannot find -lgcci podobne błędy.
HelloGoodbye
4

Ubuntu 15.04 osiągnęło koniec życia i nie ma wsparcia, co oznacza, że ​​nie będą już publikowane żadne aktualizacje ani poprawki (zabezpieczenia, błędy lub funkcje) .

Powinieneś zaktualizować lub zainstalować ponownie w nowszej wersji Ubuntu.

Polecam skorzystanie z wersji 16.10 (wsparcie 9 miesięcy), która ma już oddział gcc 6.x na oficjalnych transakcjach repo.

Ale możesz także skorzystać z 16.04 LTS (5 lat wsparcia) i dodać niezaufanego / nieudzielonego ppa, aby uzyskać najnowsze wersje gcc, takie jak ta

Osobiście wybrałbym wersję 16.10 i kontynuowałem aktualizację z oficjalnych kanałów do późniejszych wersji oprogramowania / Ubuntu bez dodawania (głównie) jakichkolwiek ppa.

dgonzalez
źródło