1. ROS 2 GPG密钥过期问题解析
最近在Ubuntu 22.04(Jammy)上使用ROS 2 Humble时,很多开发者遇到了一个常见错误:"E: The repository 'http://mirrors.ustc.edu.cn/ros/ubuntu jammy Release' does not have a Release file"。这个问题的根源在于ROS 2官方GPG密钥过期了。
GPG密钥在Linux软件包管理中扮演着重要角色。它就像软件仓库的"身份证",用于验证下载的软件包是否来自可信源。当密钥过期时,apt包管理器会拒绝从该源更新或安装软件,导致上述错误。
注意:这个问题不仅影响USTC镜像站,所有使用官方ROS仓库的用户都可能遇到。错误信息中的"does not have a Release file"实际上是密钥验证失败后的误导性提示。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 完整解决方案与操作步骤
2.1 更新ROS 2 GPG密钥
首先需要获取最新的ROS 2 GPG密钥。官方推荐的方法是直接从GitHub仓库获取:
bash复制sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
这条命令做了三件事:
- 使用curl从GitHub下载最新的ros.key文件
- 通过-sSL参数确保安全连接(防止中间人攻击)
- 将密钥保存到系统标准密钥目录/usr/share/keyrings/,命名为ros-archive-keyring.gpg
2.2 验证密钥更新
执行完上述命令后,建议检查密钥是否已正确安装:
bash复制ls -l /usr/share/keyrings/ros-archive-keyring.gpg
你应该能看到类似这样的输出:
code复制-rw-r--r-- 1 root root 1736 May 15 10:23 /usr/share/keyrings/ros-archive-keyring.gpg
2.3 更新软件源并安装软件包
密钥更新后,
