文章内容

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 支持(如果你需要继续接收安全更新)

  1. 登录 https://ubuntu.com/advantage

  2. 使用 Ubuntu One 账户免费领取 ESM token(免费覆盖最多 3 台机器)。

  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
分享到:

发表评论

评论列表