执行apt-get update失败,报错并提供源列表寻求技术支持
解决apt-get update失败的常见方案
嘿,我经常帮人排查apt相关的问题,针对你遇到的apt-get update执行失败的情况,我整理了几个最常见的排查方向和解决步骤,你可以对照自己的具体错误信息来调整:
一、先定位错误类型
首先得看你的错误属于哪一类,举两个最典型的例子:
如果错误提示是:
Err:1 http://archive.ubuntu.com/ubuntu focal InRelease
Could not resolve 'archive.ubuntu.com'
这说明是网络解析/连接问题,源服务器连不上。
如果错误提示是:
Err:1 http://archive.ubuntu.com/ubuntu focal InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY XXXXXXXX
这就是源公钥缺失的问题,系统没法验证源的合法性。
二、网络类错误的解决办法
- 先测试基础连通性:打开终端执行
ping archive.ubuntu.com,如果ping不通,要么是你的网络本身有问题,要么是境外源访问太慢,建议换成国内的镜像源(比如阿里云、清华镜像) - 更换国内镜像源的具体步骤:
- 先备份当前的源列表,避免改坏了没法恢复:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak - 编辑源列表文件:
sudo nano /etc/apt/sources.list - 把文件里的内容替换成国内源,比如清华的Ubuntu 20.04(focal)源:
如果你是其他版本的Ubuntu,把deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiversefocal换成对应的版本代号就行(比如22.04是jammy) - 保存退出nano:按
Ctrl+O,回车确认保存,再按Ctrl+X退出 - 重新执行
sudo apt-get update试试
- 先备份当前的源列表,避免改坏了没法恢复:
三、公钥缺失错误的解决办法
- 如果你遇到的是公钥缺失,先把错误里的
XXXXXXXX换成实际的公钥编号,然后执行:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys XXXXXXXX - 不过
apt-key已经被官方弃用了,更推荐下面的方式:- 创建公钥存储目录:
sudo mkdir -p /etc/apt/trusted.gpg.d - 下载并保存公钥:
sudo gpg --no-default-keyring --keyring /etc/apt/trusted.gpg.d/ubuntu-keyring.gpg --keyserver keyserver.ubuntu.com --recv-keys XXXXXXXX - 再跑一遍
sudo apt-get update
- 创建公钥存储目录:
四、源列表格式错误的排查
如果上面的方法都没用,检查你的源列表里有没有拼写错误:比如版本代号写错了(比如把jammy写成jamy),或者URL格式不对,确保每一行都是deb [可选参数] 源地址 版本代号 组件的格式。
内容的提问来源于stack exchange,提问作者user9213950
相关产品推荐
相关产品推荐

