ubuntu deb822格式source.list.d/ubuntu.sources

Ubuntu 近几年把软件源配置从传统的 sources.list 单行格式,逐步引向一种更结构化的新写法 —— DEB822 格式。名字来自 Debian 的控制文件规范(RFC822 风格键值对结构),本质上是把一行挤满参数的源定义,改成字段化配置

传统格式像这样:

1
deb http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse

DEB822 改成块结构,每个字段单独一行,更清晰也更容易自动化管理:

1
2
3
4
5
Types: deb
URIs: http://archive.ubuntu.com/ubuntu
Suites: noble noble-updates noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

核心变化可以理解为:

  • 一条源 = 一个配置块
  • 每个参数拆成字段
  • 支持多个 suites / types 合并写
  • 密钥绑定(Signed-By)更安全
  • 更适合自动生成与容器环境

字段含义:

Types
源类型,一般是:

  • deb 二进制包
  • deb-src 源码包

URIs
仓库地址。

Suites
发行版本或仓库通道,例如:

  • noble(24.04)
  • noble-updates
  • noble-security
  • noble-backports

Components
软件仓库分类:

  • main(官方支持)
  • restricted(受限驱动)
  • universe(社区维护)
  • multiverse(版权受限)

Signed-By
指定仓库签名 key,避免全局信任 key。


Ubuntu 为什么要推这个格式?

因为旧格式存在几个现实问题:

  1. 自动化工具修改困难
  2. key 管理混乱(apt-key 已废弃)
  3. 一行参数太多,容易写错
  4. 容器/云环境需要模块化源配置

DEB822 更像结构化配置文件,适合现代运维和 CI 自动化。


现在 Ubuntu 24.04+ 的默认源文件通常在:

1
/etc/apt/sources.list.d/ubuntu.sources

而不是旧的:

1
/etc/apt/sources.list

你可以直接查看:

1
cat /etc/apt/sources.list.d/ubuntu.sources