如何解决ROS软件包仓库密钥过期错误

嘿,大家好!在使用ROS(机器人操作系统)时,你可能会遇到一个让人头疼的问题,那就是软件包仓库密钥过期的错误。当你运行sudo apt update时,可能会看到以下两个错误消息:

Following signatures invalid EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
Failed to fetch packages ros org

这些错误可能会妨碍你更新ROS软件包,但别担心,今天我将向你展示如何解决这个问题,使你的ROS系统重新运行起来。

为什么会出现这个问题

首先,让我们了解为什么会出现这个问题。ROS使用了Ubuntu的Debian软件包系统来分发ROS软件包。为了确保你下载的所有软件包都是真实的,没有被修改过,最佳实践是对这些软件包进行签名。这就涉及到使用GPG密钥来签名软件包。

然而,GPG密钥默认设置了最多2年的有效期。现在,到了2021年的五月底,这个密钥已经过期了,所以你会看到操作系统发出了密钥已过期的警告,错误代码是EXPKEYSIG

错误的具体表现

当你运行sudo apt update时,你会看到4条错误消息,它们都在抱怨密钥过期的问题。其中一条在中间部分,其余三条在输出的末尾。

中间部分的错误消息示例:

The following signatures were invalid EXPKEYSIG F42ED6FBAB17C654 Open Robotics info osrfoundation org
Err:8 http://packages.ros.org/ros/ubuntu focal InRelease   
   The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org

末尾部分的错误消息示例:

W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://packages.ros.org/ros/ubuntu focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://packages.ros.org/ros/ubuntu focal InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
W: Failed to fetch http://packages.ros.org/ros/ubuntu/dists/focal/InRelease The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
W: Failed to fetch http://packages.ros.org/ros/ubuntu/dists/focal/InRelease The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
W Some index files failed to download. They have been ignored or old ones used instead
W: Some index files failed to download. They have been ignored, or old ones used instead.

如何解决

要解决这个问题,你需要添加更新后的密钥文件,并再次运行sudo apt update来验证修复。

步骤1:添加更新后的密钥文件

适用于ROS 1:ROS Melodic或Noetic

如果你使用的是ROS Melodic或Noetic,运行以下命令:

curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

apt-key add命令将添加新的ROS密钥。当成功时,你将看到输出中显示"OK"。

适用于ROS 2:ROS2 Galactic、Foxy、Dashing...

如果你使用的是ROS 2,如ROS2 Galactic、Foxy或Dashing,密钥文件与ROS 1 不同。你需要运行以下命令:

sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

步骤2:验证修复并检查更新后的ROS软件包

现在,运行sudo apt update来验证密钥是否已成功添加和修复。

sudo apt update

你将看到类似下面的输出。只要没有看到

任何错误,你就可以像往常一样更新ROS软件包了。

$ sudo apt update
...
 Get:15 http://packages.ros.org/ros/ubuntu focal InRelease [4,676 B] 
...
 Fetched 2,671 kB in 2s (1,607 kB/s)                     
 Reading package lists… Done
 Building dependency tree       
 Reading state information… Done
 30 packages can be upgraded. Run 'apt list --upgradable' to see them.

至此,新的密钥已经设置为有效期5年,比默认设置多3年。这应该足够覆盖你当前的Ubuntu操作系统和ROS版本的使用寿命。

结语

恭喜你,你已经成功解决了ROS软件包仓库密钥过期的问题,现在可以继续愉快地使用ROS了!

声明:本站所有文章,如无特殊说明或标注,均为本站(王大神)原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
指数词

如何安装PyTorch 1.5

2023-9-17 9:33:12

指数词

在Azure虚拟机上搭建GPU PyTorch环境的完整指南

2023-9-17 9:40:48

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索