当前位置: 首页 > news >正文

ubuntu apt 命令报错 Key is stored in legacy trusted.gpg keyring

问题

执行 apt 相关命令报错,如下

apt-get update
Hit:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy InRelease
Hit:2 http://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial InRelease
Hit:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-backports InRelease
Hit:4 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates InRelease
Hit:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-security InRelease
Hit:6 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic InRelease
Get:7 https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64  InRelease [1,484 B]
Hit:8 https://nvidia.github.io/nvidia-container-runtime/stable/ubuntu18.04/amd64  InRelease
Hit:9 https://nvidia.github.io/nvidia-docker/ubuntu18.04/amd64  InRelease
Fetched 1,484 B in 2s (800 B/s)
Reading package lists... Done
W: http://mirrors.aliyun.com/kubernetes/apt/dists/kubernetes-xenial/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
W: http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu/dists/bionic/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
W: https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
W: https://nvidia.github.io/nvidia-container-runtime/stable/ubuntu18.04/amd64/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
W: https://nvidia.github.io/nvidia-docker/ubuntu18.04/amd64/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

解决

首先,列出所有添加到你系统中的 GPG 密钥。

apt-key list

这将显示一个存储在你系统中的巨大的密钥列表。你在这里要做的是寻找与警告信息相关的密钥。
注意告警中的这句话 Key is stored in legacy trusted.gpg,意思是存在 /etc/apt/trusted.gpg 文件中的密钥有问题。从以下输出可知,有 5 个问题密钥。依次导出到 /etc/apt/trusted.gpg.d/ 目录下即可。

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg
--------------------
pub   rsa4096 2017-02-22 [SCEA]9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]pub   rsa4096 2015-08-12 [SC]2388 FF3B E10A 76F6 38F8  0723 FCAE 110B 1118 213C
uid           [ unknown] Launchpad PPA for Graphics Drivers Teampub   rsa4096 2017-09-28 [SCE]C95B 321B 61E8 8C18 09C4  F759 DDCA E044 F796 ECB0
uid           [ unknown] NVIDIA CORPORATION (Open Source Projects) <cudatools@nvidia.com>pub   rsa2048 2021-05-04 [SC]35BA A0B3 3E9E B396 F59C  A838 C0BA 5CE6 DC63 15A3
uid           [ unknown] Artifact Registry Repository Signer <artifact-registry-repository-signer@google.com>pub   rsa2048 2022-05-21 [SC]A362 B822 F6DE DC65 2817  EA46 B53D C80D 13ED EF05
uid           [ unknown] Rapture Automatic Signing Key (cloud-rapture-signing-key-2022-03-07-08_01_01.pub)
sub   rsa2048 2022-05-21 [E]

先看 pub rsa4096 2017-02-22 [SCEA] 这个密钥,你应该看到 pub 后一行的最后 8 个字符 0EBF CD88(不包括空格):
因此,从 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 这行中,我将提取最后8个字符 0EBF CD88,去掉空格,然后用它来导入 /etc/apt/trusted.gpg.d 目录下专用文件中的 GPG 密钥:

apt-key export 0EBFCD88 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg

我在这里创建了一个新的文件 docker.gpg,我把它命名为 docker.gpg 是因为它与我之前安装的 docker 应用有关。文件名并不重要,但它对识别有好处。
同理,导入其他问题密钥,文件名随意。

apt-key export 1118213C | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/Launchpad.gpg
apt-key list
apt-key export F796ECB0 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/cuda-tool.gpg
apt-key export DC6315A3 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/Artifact.gpg
apt-key export 13EDEF05 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/cloud-rapture.gpg

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 面向对象编程:一切皆对象
  • nohup将代码放到后端运行查看nohup命令
  • “循环购:消费即赚的创新模式“
  • VMware安装Win10系统(保姆级教程)
  • WordPress建站:如何使用Hostinger搭建WordPress外贸独立站
  • Windows Server搭建Prometheus+Grafana监控系统
  • web后端--Spring事务管理
  • 深入剖析:GaussDB与MySQL在COUNT查询中的并行化技术
  • Yolo-World在基于自己的数据集训练后zero-shot能力显著下降甚至消失的问题
  • 洛谷 P1320 压缩技术(续集版) 题解
  • ROS配置并同时驱动多个UVC相机(含功能包)
  • python文件的读写
  • FFplay介绍及命令使用指南
  • 大数据采集工具——Flume简介安装配置使用教程
  • 【扩散模型思考记录(一)】图像生成的本质是什么?什么是适合采样的复杂分布?
  • JavaScript-如何实现克隆(clone)函数
  • IP路由与转发
  • JavaScript设计模式之工厂模式
  • Laravel Mix运行时关于es2015报错解决方案
  • maya建模与骨骼动画快速实现人工鱼
  • Python实现BT种子转化为磁力链接【实战】
  • scrapy学习之路4(itemloder的使用)
  • underscore源码剖析之整体架构
  • 对超线程几个不同角度的解释
  • 利用DataURL技术在网页上显示图片
  • 入门级的git使用指北
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 消息队列系列二(IOT中消息队列的应用)
  • 2017年360最后一道编程题
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​数据结构之初始二叉树(3)
  • ‌移动管家手机智能控制汽车系统
  • #14vue3生成表单并跳转到外部地址的方式
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (16)Reactor的测试——响应式Spring的道法术器
  • (3) cmake编译多个cpp文件
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (笔记)M1使用hombrew安装qemu
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (转)http协议
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • **python多态
  • .Mobi域名介绍
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .net core开源商城系统源码,支持可视化布局小程序
  • .net framework profiles /.net framework 配置
  • .net 后台导出excel ,word
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • ??Nginx实现会话保持_Nginx会话保持与Redis的结合_Nginx实现四层负载均衡