ROS入门——解决:E: 仓库 “http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu focal Release” 没有数字签名。

本文详细阐述了在安装ROS过程中遇到的gpg签名验证错误,介绍了通过添加密钥文件和参考其他论坛解决方案来修复问题的步骤,包括从keyserver获取密钥并将其添加到apt源中,确保软件包安全更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、错误

在安装ROS的时候出现以下报错,

# 报错
E: 仓库 “http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu focal Release” 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。

二、原理

看官网的安装过程说明 。

 其实在1.3步骤(设置密钥)的时候就已经出现问题了,只是当时没有在意,以为是正常现象

 在官网的代码中,最后末尾是add -,其实这里正确的是应该由我们在 “ - ” 处填充内容。

这个问题的本质解决方案就是 add 一系列信息

三、解决方案

1.方法一:传入密钥文件

(1)找到内容

在1.3步骤中提到两个链接,第一个链接需要翻墙,第二个链接如果虚拟机内打不开,可以在外部打开

hkp://keyserver.ubuntu.com:80

http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

打开页面后发现是以下内容。

(2)传入文件 

将整个内容复制进txt文件【别忘了comment和version行】,保存文件名为 “ ros.asc ” ,传入虚拟机。发现文件变成下面这个样式

(3)载入

在文件所在文件夹下打开终端,输入

apt-key add ros.asc

 【【【

这里可能会提示需要root权限,如果设置过root密码则直接进入root模式

su root

 如果没有设置过的话设置一下密码:

# 设置密码
sudo passwd root

# 完成后进入
su root
# 退出root的几种方式
# ctrl+D
# exit
sudo apt update

 】】】

 再次运行

发现就没有报错了

2.方法二:

参考论坛话题Ubuntu-gpg:找不到有效的OpenPGP数据

里面有很多人提供了其他的方法

参考博客:

Ubuntu20.04安装ROS2遇到gpg: 找不到有效的 OpenPGP 数据的问题

<think>好的,我现在需要解决用户提出的在Ubuntu上添加Intel RealSense apt仓库时出现的连接失败错误。根据用户提供的引用内容,错误信息是关于GPG签名验证的问题,具体是“Couldn’t create temporary file /tmp/apt.conf.uVU4hR for passing config to apt-key”。用户还提到了安装RealSense驱动和ROS驱动时的一些步骤,比如编译时的问题和动态重配置包的冲突。 首先,我需要理解这个错误的根本原因。用户提到的GPG错误通常与权限或临时文件目录有关。错误信息指出无法创建临时文件,这可能是因为/tmp目录的权限问题,或者系统无法写入该目录。此外,可能还存在网络连接问题,导致无法下载仓库的密钥或元数据。 接下来,我需要查阅用户提供的引用内容。引用[1]中的错误提示表明在更新仓库时遇到了GPG签名验证失败,系统无法创建临时文件。引用[2]、[3]、[4]主要涉及RealSense驱动的编译和安装,以及动态重配置包的冲突处理,可能与当前问题关联不大,但需要确认是否有其他潜在因素。 可能的解决步骤包括: 1. 检查/tmp目录权限:确保当前用户有权限在/tmp目录下创建文件。可以通过ls -ld /tmp查看权限,通常应该是drwxrwxrwt,允许所有用户读写,但只有所有者可以删除自己的文件。 2. 清理apt缓存:使用sudo apt clean或手动删除/var/lib/apt/lists/*下的文件,可能旧的缓存导致问题。 3. 手动添加GPG密钥:如果自动下载失败,可以尝试手动下载并添加密钥。例如,使用wget获取密钥,然后用apt-key add导入。 4. 检查网络连接:确保系统能正常访问security.ubuntu.com和其他Ubuntu仓库,可能防火墙或代理设置阻止了连接。 5. 使用备用仓库地址:有时候官方仓库可能暂时不可用,可以尝试更换镜像源,比如使用阿里云或清华的镜像。 6. 临时文件问题:如果/tmp空间不足,使用df -h检查磁盘空间,或设置TMPDIR环境变量指向其他有空间的目录。 此外,引用[4]提到安装dynamic-reconfigure时需要注意避免冲突,虽然这主要影响驱动启动,但可能间接影响仓库添加过程,需要确保系统依赖正确安装。 在实施这些步骤时,需要注意用户的具体环境,比如Ubuntu版本是否为jammy(22.04),以及是否有其他自定义配置。同时,确保在修改系统设置前备份相关文件,避免操作失误导致更多问题。 最后,生成相关问题,帮助用户进一步排查可能的相关问题,比如网络配置、权限管理或其他依赖问题。</think>### 分步解决方案 **问题分析** 该错误是由于系统无法创建临时文件导致GPG签名验证失败,可能原因包括: - `/tmp`目录权限不足或磁盘空间不足 - 网络连接问题导致无法获取密钥 - 系统缓存文件冲突 --- **解决方法**** 1. **检查临时目录权限** 执行以下命令确保`/tmp`目录可写: ```bash ls -ld /tmp # 应显示权限为drwxrwxrwt sudo chmod 1777 /tmp # 如果权限异常则修复 df -h /tmp # 检查磁盘剩余空间 ``` 2. **清理APT缓存与旧配置** 清除残留的仓库元数据: ```bash sudo rm -rf /var/lib/apt/lists/* sudo apt clean ``` 3. **手动添加GPG密钥** 若自动下载密钥失败,手动操作: ```bash wget -qO- https://apt.realsense.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | sudo tee /usr/share/keyrings/realsense.gpg >/dev/null ``` 4. **添加仓库地址** 使用更稳定的格式添加仓库(注意替换`jammy`为你的Ubuntu版本代号): ```bash echo "deb [signed-by=/usr/share/keyrings/realsense.gpg] https://apt.realsense.intel.com/ubuntu-jammy main" | sudo tee /etc/apt/sources.list.d/realsense.list ``` 5. **更新仓库** 重新执行更新并安装驱动: ```bash sudo apt update sudo apt install intel-realsense-dfu librealsense2 librealsense2-utils ``` --- **注意事项** - 若使用代理,需在`/etc/apt/apt.conf`中配置代理参数[^1] - 若仍报错,尝试更换镜像源(如清华源)后再操作 - 确保ROS环境与RealSense驱动版本兼容[^4] ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值