一、问题现象
在执行 sudo apt-get update 命令时,终端出现一系列报错信息:
1、从 http://archive.ubuntu.com/ubuntu 相关多个仓库(如 xenial inrelease、xenial-security inrelease、xenial-updates inrelease、xenial-proposed inrelease、xenial-backports inrelease)更新时,均报错 err,错误详情为:
the following signatures couldn't be verified because the public key is not available: no_pubkey 40976eaf437d05b5 no_pubkey 3b4fe6acc0b21f32。
同时还提示
e: the repository '具体仓库名(如 http://archive.ubuntu.com/ubuntu xenial inrelease)' is not signed.
以及
n: updating from such a repository can't be done securely, and is therefore disabled by default.
表明这些仓库由于签名无法验证且未签名,默认禁止更新。
2、对于 https://mirrors.aliyun.com/docker-ce/linux/ubuntu/dists/jammy/inrelease 仓库,提示
w: https://mirrors.aliyun.com/docker-ce/linux/ubuntu/dists/jammy/inrelease: key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the deprecation section in apt-key(8) for details.
显示其密钥存储在旧的 trusted.gpg 密钥环,虽此为提示信息,但也涉及密钥相关问题。
二、问题分析
- 签名验证失败:系统缺少对应公钥来验证
http://archive.ubuntu.com/ubuntu系列仓库软件包列表签名,安全机制下,apt禁止从这些仓库更新。 - 仓库未签名:相关报错仓库未恰当签名,不符安全更新要求致更新禁用。
- 密钥存储提示:
https://mirrors.aliyun.com/docker-ce/linux/ubuntu仓库密钥存储方式旧,暂不影响核心更新报错,但也是潜在隐患需留意。
三、解决办法
- 添加缺失公钥
打开终端,执行以下命令:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976eaf437d05b5 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3b4fe6acc0b21f32
目的:从 `keyserver.ubuntu.com` 服务器获取并添加缺失公钥,解决签名验证基础问题。
注意:确保网络连接正常以便顺利获取公钥,若执行报错,检查网络设置或服务器是否可达。
- 检查仓库配置(可选)
查看 /etc/apt/sources.list 以及 /etc/apt/sources.list.d/ 目录下文件:
- 使用
cat或less命令查看,如cat /etc/apt/sources.list,检查仓库地址是否准确,有无拼写错误或过时配置。 - 重点关注涉及
http://archive.ubuntu.com/ubuntu及相关报错仓库配置行。
若发现问题:
- 对于错误仓库地址,直接编辑修改,使用文本编辑器(如
nano或vim),如sudo nano /etc/apt/sources.list,修改完保存退出。 - 对于不需要仓库,可删除对应配置行,同样用文本编辑器操作,注意备份原文件以防误操作。
四、后续操作
完成上述解决办法步骤后,重新执行 sudo apt-get update 命令:
- 若更新过程顺利,无报错,显示
reading package lists... done且无err、w类错误提示,说明问题解决,系统可正常更新软件包列表,后续能按需安装、升级软件。 - 若仍有报错,仔细记录新错误信息,重复分析问题、寻找解决办法流程,可能需进一步排查系统软件源、网络环境或其他潜在因素。
五、总结
以上笔记详细记录 sudo apt-get update 报错处理全程,方便后续遇到类似问题快速查阅、解决。
这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论