文章内容
2025/11/6 18:52:45,作 者: 黄兵
Unable to fetch some archives, maybe run apt-get update or try with --fix-missing
最近在更新 Ubuntu 系统的时候,出现了这个错误:
E: Failed to fetch https://esm.ubuntu.com/infra/ubuntu/pool/main/s/sudo/sudo_1.8.31-1ubuntu1.5+esm1_amd64.deb 401 Unauthorized [IP: 185.125.190.24 443]
E: Failed to fetch https://esm.ubuntu.com/infra/ubuntu/pool/main/u/udisks2/udisks2_2.8.4-1ubuntu2+esm2_amd64.deb 401 Unauthorized [IP: 185.125.190.24 443]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
出现问题的原因:
正在使用 Ubuntu ESM(Extended Security Maintenance)专用仓库(https://esm.ubuntu.com/infra/ubuntu/...),
但是 系统没有订阅或启用有效的 ESM 令牌,因此被拒绝访问(HTTP 401 Unauthorized)。
Ubuntu 默认仓库在 LTS 版本结束标准支持后(比如 Ubuntu 18.04、16.04),
安全更新会被转移到 “ESM 仓库” (由 Canonical 维护)。
这个仓库只有:
-
注册 Ubuntu Advantage (UA) 或者
-
启用了 ESM 免费服务(个人可免费使用)
的系统才能访问。
解决方案:
方法 1:禁用 ESM 仓库(推荐给一般用户)
如果你不需要 ESM(只想让 apt 不再报错),可以禁用它:
sudo sed -i '/esm\.ubuntu\.com/d' /etc/apt/sources.list /etc/apt/sources.list.d/* 2>/dev/null sudo apt-get update
这样会删除所有指向 esm.ubuntu.com 的软件源。
之后再执行:
sudo apt-get update sudo apt-get upgrade
方法 2:注册并启用 ESM 支持(如果你需要继续接收安全更新)
-
使用 Ubuntu One 账户免费领取 ESM token(免费覆盖最多 3 台机器)。
- 在服务器上执行:
sudo ua attach {你的token}
- 启用 ESM:
sudo ua enable esm-infra sudo ua enable esm-apps
- 然后重新更新:
sudo apt update && sudo apt upgrade
方法 3:如果是旧版本系统(例如 Ubuntu 18.04)
可以将仓库源改回普通 archive:
打开文件:
sudo nano /etc/apt/sources.list
将所有包含:
https://esm.ubuntu.com/infra/ubuntu
改为:
http://archive.ubuntu.com/ubuntu
或者(国内镜像更快):
http://mirrors.ustc.edu.cn/ubuntu
保存退出后执行:
sudo apt-get update --fix-missing sudo apt-get upgrade
评论列表