Zainstalować GCC 7 na Ubuntu?

11

Próbuję uruchomić test w GCC 7. Zgodnie z Jak zainstalować gcc-7 lub clang 4.0? na Ubuntu.SE, możemy wykonać następujące czynności, aby zainstalować GCC 7 na Ubuntu:

add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-7

Polecenie kończy się niepowodzeniem podczas instalacji:

# apt-get install -y gcc-7
...
E: Unable to locate package gcc-7

Próbowanie 7.1:

# apt-get install -y gcc-7.1
...
E: Unable to locate package gcc-7.1
E: Couldn't find any package by glob 'gcc-7.1'
E: Couldn't find any package by regex 'gcc-7.1'

Zgodnie z listą wszystkich pakietów z repozytorium w Ubuntu / debian na serwerze Fault, możemy wyszukać konkretne repozytorium w poszukiwaniu pakietu za pomocą:

# grep ^Package: /var/lib/apt/lists/ppa.launchpad.net_*_Packages | grep gcc-7
#

Ale nie jestem pewien, czy powyższe polecenie szuka ppa:ubuntu-toolchain-r.

Złożyłem coś razem, ale nie działają zgodnie z oczekiwaniami. Albo odpowiedź Ubuntu.SE jest nieprawidłowa, wyszukiwanie błędów serwera kończy się niepowodzeniem lub robię coś złego.

(Nie mam dostępnej maszyny Debain 8 dla pakietu gcc-7 , a Fedora 25 wydaje się nie mieć GCC 7. Więc jestem prawie utknięty z Ubuntu).

Co ja robię źle? Lub jak mogę zainstalować GCC 7?


# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.10
Release:        16.10
Codename:       yakkety

źródło
3
ubuntu-toolchain-r/testPPA nie wydaje się zapewniać gcc-7 dla Ubuntu 16.10 (Yakkety) - chociaż to robi dla obu 16.04 (Xenial) i 17.04 (pikantny) - jak widać odwiedzając „PPA dla Ubuntu Toolchain Przesłane (ograniczona)” zespół i filtrowanie według serii
steeldriver
Dzięki Steeldriver. Wydaje się, że rozszerzenie karetki z etykietą „Szczegóły techniczne tego PPA” jest dostępne dla wersji 16.10. Dziwne ... Myślę, że
PPA jest dostępny dla wersji 16.10, ale nie zapewnia wszystkich tych samych pakietów - być może dlatego, że wersja
steeldriver
Dla tych, którzy nie mogą tego zrobić (jak ja), zobacz także Jak mogę cofnąć dodawanie PPA i instalowanie z niego pakietów? na Ubuntu Stack Exchange.

Odpowiedzi:

7

Aby zainstalować gcc-7na Ubuntu, powinieneś użyć tego ppa :

sudo add-apt-repository ppa:jonathonf/gcc-7.1
sudo apt-get update

Następnie uruchomić: apt-cache search gcc-7

próbka wyjściowa:

gcc-7-base - GCC, the GNU Compiler Collection (base package)
gcc-7 - GNU C compiler
gcc-7-multilib - GNU C compiler (multilib support)
gcc-7-plugin-dev - Files for GNU GCC plugin development.
gcc-7-test-results - Test results for the GCC test suite
lib32gcc-7-dev - GCC support library (32 bit development files)
libgcc-7-dev - GCC support library (development files)
gcc-7-doc - Documentation for the GNU compilers (gcc, gobjc, g++)
gcc-7-hppa64-linux-gnu - GNU C compiler (cross compiler for hppa64)
gcc-7-locales - GCC, the GNU compiler collection (native language support files)
gcc-7-source - Source of the GNU Compiler Collection
libx32gcc-7-dev - GCC support library (x32 development files)
gcc-7-offload-nvptx - GCC offloading compiler to NVPTX
lib64gcc-7-dev - GCC support library (64bit development files)

Zainstaluj gcc-7:

sudo apt install gcc-7
GAD3R
źródło
6
Dzięki GAD3R. Czy wiesz, kim jest jonathonf? Próbuję użyć sprzętu Ubuntu, ponieważ jest już zaufany. W przeciwnym razie muszę przeskoczyć przez obręcze i dowiedzieć się, kim jest jonathonf, i ustalić, czy jest wiarygodnym źródłem.
Czy to powinno działać również w Linaro?
Nadav B
2

Ubuntu 18.04 ma zarówno GCC 7 (7.3.0-16ubuntu3, w tej chwili piszę tę odpowiedź), jak i GCC 8 (8-20180414-1ubuntu2). Nie ma już potrzeby dodawania repozytoriów stron trzecich: po prostu uruchom sudo apt-get install gcc-7.

kiamlaluno
źródło
1

Jeśli musisz skonfigurować platformę testową za pomocą kompilatora, Fedora 26 jest dostarczana z GCC 7.1.

Możesz także znaleźć GCC 7 w Debian 10 / Buster (Debian 9 z włączonym testowaniem repo). W przypadku Debiana musisz apt-get install gcc-7 g++-7.

Dla kompletności nie jest jasne, która wersja kompilatorów Microsoft obsługuje C ++ 17 i std::byte(powód, dla którego potrzebowałem kompilatora do testowania).

I dzięki GAD3R za jego pomoc. Powodem, dla którego tego uniknąłem, było to, że nie mogłem ustalić pochodzenia niektórych umów PPA.


źródło