sudo apt-get update
报错及解决工作笔记
一、问题现象
在执行 sudo apt-get update
命令时,终端出现一系列报错信息:
- 从
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.
,表明这些仓库由于签名无法验证且未签名,默认禁止更新。
- 对于
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
报错处理全程,方便后续遇到类似问题快速查阅、解决。