как получить gcc / gpp с 6 по 9 на систему Xenial?

Я попытался получить компиляторы выше, чем gcc / gpp-5 для Ubuntu 16.04 (xenial).

Я добавил эти строки в /etc/apt/sources.list

deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main
deb-src http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main

deb http://ppa.launchpad.net/jonathonf/gcc/ubuntu xenial main
deb-src http://ppa.launchpad.net/jonathonf/gcc/ubuntu xenial main

, когда запустил «apt update», после чего получил следующее:

Err:9 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial InRelease
 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1E9377A2BA9EF27F
Err:16 http://ppa.launchpad.net/jonathonf/gcc/ubuntu xenial InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 8CF63AD3F06FC659

Затем я попытался добавить ключи:

# apt-key adv --keyserver keyserver.ubuntu.com --recv-key 1E9377A2BA9EF27F
Executing: /tmp/tmp.hQqulW3vSQ/gpg.1.sh --keyserver
keyserver.ubuntu.com
--recv-key
1E9377A2BA9EF27F
> gpg: requesting key BA9EF27F from hkp server keyserver.ubuntu.com
gpgkeys: key 1E9377A2BA9EF27F not found on keyserver
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
gpg: keyserver communications error: key not found
gpg: keyserver communications error: bad public key
gpg: keyserver receive failed: bad public key

# apt-key adv --keyserver keyserver.ubuntu.com --recv-key 8CF63AD3F06FC659
Executing: /tmp/tmp.9sbMVJgRDb/gpg.1.sh --keyserver
keyserver.ubuntu.com
--recv-key
8CF63AD3F06FC659
gpg: requesting key F06FC659 from hkp server keyserver.ubuntu.com
gpgkeys: key 8CF63AD3F06FC659 not found on keyserver
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
gpg: keyserver communications error: key not found
gpg: keyserver communications error: bad public key
gpg: keyserver receive failed: bad public key

Как просто получить набор более новых компиляторов для этой платформы?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ У нас есть июль 2019 года и когда-то работающие рецепты для этого всего 8 месяцев назад просто отказали в системе LTS ...

1
задан 25 July 2019 в 18:33

2 ответа

(разработка этого решения частично основана на диалоговом окне между N0rbert и мной в его первоначальном предложении),

понимание проблемы, развитой до такой степени, когда "gpg" доступ, было найдено как проблематичная/повисшая операция. комментарий пользователя "nobar" был самым полезным для получения заключительной подсказки:

gpg: no valid OpenPGP data found.

In this scenario, the message is a cryptic way of telling you that the download failed.

посмотрите их тема в полном размере, обсужденном там: https://stackoverflow.com/questions/21338721/gpg-no-valid-openpgp-data-found

теперь для того, чтобы сделать работу вокруг для решения проблемы в теме прямо здесь...

перейдите к http://keyserver.ubuntu.com/ - для каждого из недостающих ключей (BA9EF27F / F06FC659) сделайте:

  • введите каждый недостающий ключ с "0x" префиксом к предлагаемому полю ввода
  • установите переключатель для, "Получают подробный индекс соответствия ключам"
  • нажмите кнопку "Search for a key"
  • на получающейся странице нажимают на ссылку в строке "паба" и сохраняют целевую веб-страницу к Вашей папке загрузки (я использовал короткий keyId и *.txt расширение; на самом деле это - содержание файла HTML, но это - симпатичное, не заботятся о вещи),
  • выполните команду follwing, как поддерживают каждый из загруженных файлов:

    apt-key add ***name-of-the-file***
    

когда вышеупомянутое сделано два раза (для каждого ключа однажды), затем выполняет это для проверки, если это работало:

apt update

результаты должны содержать помимо нескольких других строк также что-то как эти строки:

Get:23 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial/main Sources [13.4 kB]
Get:24 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial/main amd64 Packages [86.8 kB]
Get:25 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial/main i386 Packages [85.1 kB]
Get:27 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial/main Translation-en [14.4 kB]
Get:28 http://ppa.launchpad.net/jonathonf/gcc/ubuntu xenial/main Sources [12.1 kB]
Get:29 http://ppa.launchpad.net/jonathonf/gcc/ubuntu xenial/main amd64 Packages [79.7 kB]
Get:30 http://ppa.launchpad.net/jonathonf/gcc/ubuntu xenial/main i386 Packages [78.4 kB]
Get:31 http://ppa.launchpad.net/jonathonf/gcc/ubuntu xenial/main Translation-en [15.7 kB]

заключительная операция об установке дополнительных gcc версий по Вашему выбору:

apt install gcc-6 g++-6
apt install gcc-7 g++-7
apt install gcc-8 g++-8
apt install gcc-9 g++-9

Это наконец успешно выполнилось для меня. Все объекты были получены из http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu в amd64 версии репозитория. Я предполагаю, что должен подкачать строки в sources.list файле, если я когда-нибудь хочу установить более высокий приоритет на другом PPA.

При проверке версии установленных gcc двоичных возвратов на данный момент это пишет сообщение:

# gcc-6 --version
gcc-6 (Ubuntu 6.5.0-2ubuntu1~16.04) 6.5.0 20181026
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# gcc-7 --version
gcc-7 (Ubuntu 7.4.0-1ubuntu1~16.04~ppa1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# gcc-8 --version
gcc-8 (Ubuntu 8.3.0-16ubuntu3~16.04) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# gcc-9 --version
gcc-9 (Ubuntu 9.1.0-2ubuntu2~16.04) 9.1.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

При проверке версии установленного g ++ двоичные возвраты на данный момент это пишет сообщение:

# g++-6 --version
g++-6 (Ubuntu 6.5.0-2ubuntu1~16.04) 6.5.0 20181026
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# g++-7 --version
g++-7 (Ubuntu 7.4.0-1ubuntu1~16.04~ppa1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# g++-8 --version
g++-8 (Ubuntu 8.3.0-16ubuntu3~16.04) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# g++-9 --version
g++-9 (Ubuntu 9.1.0-2ubuntu2~16.04) 9.1.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Обновление: Они управляют (на данный момент) очевидно использует PPA Jonathon:

# apt install clang

В настоящее время результаты команды в этом присваивают версию:

$ clang --version
clang version 3.8.0-2ubuntu3~trusty5 (tags/RELEASE_380/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

# clang++ --version
clang version 3.8.0-2ubuntu3~trusty5 (tags/RELEASE_380/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
1
ответ дан 7 December 2019 в 15:00

Рассмотрим использование add-apt-repository следующим образом:

Примечания:

  1. , если пропущена команда add-apt-repository, вы можете установите его, установив один пакет с sudo apt-get install software-properties-common
  2. , если вы предпочитаете добавлять строки репозитория и ключи GPG по отдельности, то вы можете выполнять команды с помощью коротких клавиш:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA9EF27F
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F06FC659
    

    или длинные (полные) ключи

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 60C317803A41BA51845E371A1E9377A2BA9EF27F
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4AB0F789CBA31744CC7DA76A8CF63AD3F06FC659
    
  3. На LaunchPad имеются другие PPA, относящиеся к GCC 9 .

0
ответ дан 25 July 2019 в 18:33

Другие вопросы по тегам:

Похожие вопросы: