linux apt update 失败通常因源不可达、gpg密钥过期、代理干扰或源配置错误;应依次检查网络连通性、更换国内镜像源、修复gpg密钥、清理缓存及校准系统时间。

Linux 使用 apt update 失败,通常是因为源地址不可达、GPG 密钥过期、网络代理干扰或软件源配置错误。先别急着重装系统,多数情况能快速定位并修复。
检查网络连通性与基础访问
确保系统能正常访问互联网,尤其验证是否能到达默认源服务器:
- 运行
ping -c 3 archive.ubuntu.com(Ubuntu)或ping -c 3 deb.debian.org(Debian),看是否丢包或超时 - 若 ping 不通但网页能打开,可能是 ICMP 被屏蔽,改用
curl -I http://archive.ubuntu.com/ubuntu/dists/$(lsb_release -sc)/InRelease测试 HTTP 可达性 - 如使用公司网络或校园网,确认是否需配置 HTTP 代理;临时取消代理可执行:
unset http_proxy https_proxy && export HTTP_PROXY="" HTTPS_PROXY=""
更换为可用的软件源镜像
官方源在国内常不稳定,换国内镜像(如清华、阿里云、中科大)可显著提升成功率:
- 备份原配置:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak - 根据系统版本编辑源列表,例如 Ubuntu 22.04(jammy)替换为清华源:
sudo sed -i 's|http://archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list
再替换安全更新源:sudo sed -i 's|http://security.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list - 执行
sudo apt update验证是否恢复
修复 GPG 密钥错误(NO_PUBKEY / EXPKEYSIG)
提示类似 NO_PUBKEY ABCDEF1234567890 或 EXPKEYSIG,说明本地缺少或密钥已过期:
- 自动尝试更新密钥库:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABCDEF1234567890(把末尾密钥替换成报错中的值) - 若提示
apt-key is deprecated(新系统常见),改用:sudo gpg --dearmor -o /usr/share/keyrings/ubuntu-archive-keyring.gpg /tmp/ubuntu-keyring.asc(需先下载对应 keyring) - 更稳妥方式是重装官方密钥包:
Ubuntu:sudo apt install --reinstall ubuntu-keyring
Debian:sudo apt install --reinstall debian-keyring debian-archive-keyring
清理缓存与临时文件
损坏的 InRelease 或 Release.gpg 文件会导致反复失败:
- 清空 APT 缓存:
sudo rm -rf /var/lib/apt/lists/* - 重建空列表目录:
sudo mkdir -p /var/lib/apt/lists/partial - 再次运行
sudo apt update
不复杂但容易忽略:有时只是时间不同步导致 HTTPS 证书校验失败,可运行 sudo timedatectl set-ntp true 同步系统时间后再试。









