Ubuntu 26.04(resolute)必须使用deb822格式的/etc/apt/sources.list.d/ubuntu.sources配置阿里源,Suites字段须严格匹配官方命名;旧版如22.04/20.04可改sources.list,但需同步替换archive和security域名并确保HTTPS有效。

apt 源换得不对,轻则 apt update 报错、找不到包,重则系统升级失败或安全更新失效。Ubuntu 26.04 起已强制使用 deb822 格式(ubuntu.sources),老式 deb 行格式(sources.list)在新版中可能被忽略或触发警告。
确认当前 Ubuntu 版本和源文件位置
先查清你用的是哪个版本,再决定改哪个文件:
-
lsb_release -sc输出是resolute→ Ubuntu 26.04,必须改/etc/apt/sources.list.d/ubuntu.sources -
lsb_release -sc输出是jammy(22.04)、focal(20.04)等 → 改/etc/apt/sources.list - 新版默认不生成
sources.list,如果该文件存在但为空或只有注释,说明系统已在用 deb822 方式,别碰它
Ubuntu 26.04(resolute)必须用 deb822 格式写阿里源
直接覆盖 /etc/apt/sources.list.d/ubuntu.sources,内容只能是 INI 风格,不能混用旧格式。否则 apt update 会报 Invalid value for Types: expected 'deb' or 'deb-src' 或静默跳过。
- 先备份:
sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak - 编辑:
sudo nano /etc/apt/sources.list.d/ubuntu.sources - 粘贴阿里云配置(注意 Suites 必须与版本号一致):
Types: deb URIs: https://mirrors.aliyun.com/ubuntu/ Suites: resolute resolute-updates resolute-backports resolute-security Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
- 保存后执行:
sudo apt clean && sudo apt update,观察是否出现HIT或GET行且无Ign大量堆积
Ubuntu 22.04/20.04 等旧版改 sources.list 的关键细节
旧版虽然兼容两种格式,但容易踩三个坑:URI 路径拼错、security 子域漏配、HTTPS 证书未就绪。
- 不要只替换
archive.ubuntu.com,security.ubuntu.com必须单独处理,否则安全更新走不了镜像 - 推荐用
sed一次性处理(比手动编辑更可靠):
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's|http://archive.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list sudo sed -i 's|http://security.ubuntu.com|https://mirrors.aliyun.com/ubuntu-security|g' /etc/apt/sources.list
- 执行后检查是否所有行都变成
https开头;若仍有http,说明原文件含硬编码地址(如某些 Docker 镜像自带的源),需手动修正 - 如果
apt update提示证书错误(Could not resolve host或SSL certificate problem),先运行:sudo apt install -y ca-certificates
验证新源是否真正生效
别只看 apt update 是否“没报错”,要确认流量实际走了国内镜像:
- 执行:
apt update 2>&1 | grep -E "(Hit|Get)" | head -5,输出里 URI 应含mirrors.aliyun.com或mirrors.tuna.tsinghua.edu.cn - 临时禁用 DNS 缓存干扰:
sudo systemd-resolve --flush-caches,再跑一次apt update - 最直接的方式:
apt download curl后用strace -e trace=connect -f apt download curl 2>&1 | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -1查看连接的 IP 归属地
deb822 格式下,Suites 字段顺序和拼写必须严格匹配官方命名(比如 resolute-security 不能写成 resolute-security-updates),错一个字符就导致整个 Suite 不加载 —— 这是新版最容易被忽略的硬性约束。


















