ubuntu 下 PUBKEY 报错“public key is not available”

本文介绍了解决在Ubuntu上安装OpenCV时遇到的GPG密钥验证错误的方法。通过使用正确的命令更新密钥,可以避免在执行sudo apt update时出现警告。

今天在安装opencv时出现了一个问题,sudo apt update时报错:

W: GPG error: http://security.ubuntu.com trusty-security Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3B4FE6ACC0B21F32

网上给了很多解决方法,最有效的就是:sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32

其实这个方法是对的,但是我试了以后报错:

gpg: requesting key F7AA50B3 from hkp server keyserver.ubuntu.com
gpgkeys: key 0429ACCAF7AA50B3 not found on keyserver
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

花了很大功夫,发现问题其实很简单。

把上面的办法稍微改一点就行了:sudo -E apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32

后面在执行 sudo apt update 就不会报错了。

### 解决 NO_PUBKEY F42ED6FBAB17C654 错误的方法 在使用 `apt` 或 `yum` 进行软件包管理时,如果遇到缺少公钥的错误(如 NO_PUBKEY F42ED6FBAB17C654),这通常意味着系统无法验证某些软件包的来源,因为缺少相关的 GPG 密钥。以下是针对不同包管理器的具体解决方法。 #### 对于 APT(Debian/Ubuntu 系统) 在 Debian 或 Ubuntu 系统中,可以通过以下命令导入缺失的 GPG 公钥: ```bash sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654 ``` 此命令会从指定的密钥服务器下载并安装所需的 GPG 公钥[^1]。执行该命令后,重新运行更新命令以确保问题已解决: ```bash sudo apt update ``` #### 对于 YUM(CentOS/RHEL 系统) 在 CentOS 或 RHEL 系统中,可以手动下载并导入缺失的 GPG 公钥。首先需要找到对应的公钥文件 URL,然后通过以下命令导入: ```bash sudo rpm --import https://example.com/path/to/key.asc ``` 请将 `https://example.com/path/to/key.asc` 替换为实际的公钥文件地址。导入完成后,再次尝试更新或安装软件包: ```bash sudo yum makecache ``` #### 验证公钥是否成功导入 无论是 APT 还是 YUM,都可以通过以下方式验证公钥是否已成功导入: - 对于 APT,可以列出所有已导入的密钥: ```bash sudo apt-key list ``` - 对于 YUM,检查 RPM 数据库中的 GPG 密钥信息: ```bash rpm -qa gpg-pubkey* ``` #### 注意事项 如果上述方法未能解决问题,可能是因为密钥服务器暂时不可用或网络连接存在问题。可以尝试更换其他密钥服务器,例如 `hkp://keys.gnupg.net` 或 `pgp.mit.edu`。对于 APT,修改命令如下: ```bash sudo apt-key adv --keyserver hkp://keys.gnupg.net --recv-keys F42ED6FBAB17C654 ``` 此外,确保系统的包管理器配置文件是最新的,并且没有拼写错误或无效的源地址。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值