Apt

1. 版本分界
阶段 版本范围 所属Debian版本 特点
旧版 APT ≤ 2.1 Debian 10 (Buster) 及更早 传统 sources.list 格式
新版 APT ≥ 2.1 Debian 11 (Bullseye) 及之后 引入 .sources 文件,结构化格式
2. 配置文件路径变化
项目 APT ≤2.1 (旧版) APT ≥2.1 (新版)
主配置文件 /etc/apt/sources.list /etc/apt/sources.list.d/debian.sources(默认生成)
额外源配置 /etc/apt/sources.list.d/*.list /etc/apt/sources.list.d/*.sources
签名 Key /etc/apt/trusted.gpg/etc/apt/trusted.gpg.d/*.gpg /usr/share/keyrings/*.gpg(推荐安全路径)
pinning 策略 /etc/apt/preferences/etc/apt/preferences.d/* 相同路径,未改动
3. 配置文件格式对比
旧版(APT ≤2.1)

每一行就是一个源,格式简洁但不够灵活:

# /etc/apt/sources.list
deb http://deb.debian.org/debian buster main contrib non-free
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb http://deb.debian.org/debian buster-updates main contrib non-free

特点: 不支持多 URI 或多架构的分组配置 Key 管理相对混乱(容易全部信任 /etc/apt/trusted.gpg

新版(APT ≥2.1)

使用结构化格式,类似 key: value,更易于自动化脚本处理:

# /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://deb.debian.org/debian/
Suites: bookworm
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: http://security.debian.org/debian-security/
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

特点:

更安全:Signed-By 单独定义 key 路径

更灵活:可在一个 stanza(配置段)中指定多个 URI、多架构支持

易扩展:适合工具/脚本自动管理源配置

4. 路径层级变化总结
项目 旧版路径 新版路径 说明
主配置 /etc/apt/sources.list /etc/apt/sources.list.d/debian.sources 默认配置转移到了 .sources
额外配置 /etc/apt/sources.list.d/*.list /etc/apt/sources.list.d/*.sources 扩展配置也从 .list 迁移到 .sources
密钥文件 /etc/apt/trusted.gpg /usr/share/keyrings/*.gpg 每个源有独立 key,更安全
Pinning 策略 /etc/apt/preferences* /etc/apt/preferences* 这部分路径没变
5. 常见命令差异

|场景|旧版 (≤2.1)|新版 (≥2.1)| |查看 apt 版本|apt --version|apt --version| |添加源|手动编辑 /etc/apt/sources.list|用 add-apt-repository 或直接写 .sources| |备份主配置|cp /etc/apt/sources.list ...|cp /etc/apt/sources.list.d/debian.sources ...| |恢复默认配置|复制 sources.list 样例|复制 /usr/share/doc/apt/examples/sources.list.sources|

6. 如何判断当前格式

执行:

ls /etc/apt/sources.list.d/

如果是 .list 文件:旧格式

如果是 .sources 文件:新格式

或者检查 apt 版本:

apt --version

APT ≥2.1 默认支持 .sources 格式。

7. 迁移建议

如果你想保持 现代配置管理,继续使用 .sources 格式

如果脚本或习惯还依赖旧格式,可以用:

apt edit-sources

自动转换旧格式到 .sources