«gpg: не удалось получить сервер ключей: соединение отказано» с пакетами ROS - PullRequest
1 голос
/ 09 мая 2019

Я пытаюсь установить ROS2 на Ubuntu 18.04.

Следующая команда выдает ошибку из-за отсутствия открытого ключа.

sudo apt update && sudo apt install curl gnupg2 lsb-release

Ошибка:

Hit:1 http://ppa.launchpad.net/webupd8team/y-ppa-manager/ubuntu bionic InRelease
Hit:2 http://de.archive.ubuntu.com/ubuntu bionic InRelease          
Hit:3 http://de.archive.ubuntu.com/ubuntu bionic-updates InRelease             
Get:4 http://de.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] 
Get:5 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]    
Get:6 http://packages.ros.org/ros2/ubuntu bionic InRelease [2,565 B]           
Err:6 http://packages.ros.org/ros2/ubuntu bionic InRelease                     
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5523BAEEB01FA116
Reading package lists... Done                                  
W: GPG error: http://packages.ros.org/ros2/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5523BAEEB01FA116
E: The repository 'http://packages.ros.org/ros2/ubuntu bionic InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Я попробовал следующие способы получить ключ:

sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 5523BAEEB01FA116

и

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5523BAEEB01FA116

и y-ppa-manager («Попробуйте импортировать все недостающие ключи GPG»)

sudo add-apt-repository ppa:webupd8team/y-ppa-manager  
sudo apt-get install y-ppa-manager 
y-ppa-manager

все вышеперечисленные методы дают следующую ошибку

gpg: keyserver receive failed: No keyserver available

Я использую Ubuntu 18.04 с виртуальной машиной на хосте Windows 7.

Как использовать сервер ключей?

1 Ответ

0 голосов
/ 18 июня 2019

Вы можете получить копию действующего ключа из файла Dockerfile, используемого для ночной сборки образа Docker osrf / ros2: https://hub.docker.com/r/osrf/ros2/dockerfile

# setup ros2 keys
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

Это не решение для будущего, потому что я первоначально использовал другой ключ для ROS2 Crystal, а затем этот ключ внезапно перестал работать (у нас также есть свои собственные регулярные сборки), и я получил ту же ошибку, что и вы. Оказывается, мне пришлось обновить нашу сборку новыми ключами.

Я думаю, что лучшее решение для продвижения вперед - просто использовать предварительно созданную среду ROS2, доступную как образ Docker. Таким образом, ключи обновляются при его обновлении.

docker pull osrf/ros2:nightly
...