当安装 Debian Sid 版本时会发现安装源的定义文件已经从 /etc/apt/sources.list
变为 /etc/apt/sources.list.d/debian.sources
,且内部的格式定义已经改变。
DEB822
DEB822 格式的文件扩展名为 .sources
。 该格式在语法上与 Debian 及其衍生版本使用的其他文件类似,例如 apt
将从配置的源文件中下载的元数据文件,或 Debian 源码包中的 debian/control
文件。
- 单个条目由空行分隔;
- 额外的空行将被忽略;
- 行首的
#
字符将整行标记为注释。因此可以通过注释属于该节的每一行来禁用条目,但通常更简单的做法是在该节添加 "Enabled: no
" 字段来禁用条目。 删除该字段或将其设置为 "yes
",就能重新启用该条目。 - 选项的语法与其他字段相同:字段名用冒号(
:
)分隔,其值可选择空格。
特别要注意的是,多个值之间用空格(如空格、制表符和换行符)分隔,而不是像单行格式那样用逗号分隔。多值字段如 Architectures
也有 Architectures-Add
和 Architectures-Remove
来修改默认值,而不是直接替换默认值。
默认配置
使用官方网络源安装 test 版本(未发布的 Debian 13 代号 trixie),然后可见其源配置文件为:

格式相比旧格式,更加直观,但是字段复杂性更高了,同时在 Debian 13 (trixie)
中引入了源配置转换工具,在执行更新源命令时可见其提示:
Notice: Some sources can be modernized. Run 'apt modernize-sources' to do so.
使用其命令可自动将配置转换为 DEB822
格式:
sudo apt modernize-sources
以官方配置为例进行说明:
参数 | 说明 | 可用值 |
---|---|---|
Types | 种类 | 安装包(deb)、源码包(deb-src) |
URIs | 统一资源标识符,理解为地址即可 | (http)、(https)、(mirror)、(file)、(cdrom)、(ftp)、(copy)、(rsh/ssh) 等 |
Suites | 套件 | 无固定值,为仓库定义 |
Components | 组件 | 无固定值,为仓库定义 |
Signed-By | 签名,签名文件地址 | / |
Architectures* | 架构,定义所下载的安装包所支持的处理器架构 | / |
Languages* | 语言,定义所下载的安装包翻译所支持的语言 | / |
Targets* | 目标,定义将从所指定的地址获取资源文件 | / |
PDiffs* | 对比索引,定义是获取全量资源还是仅获取更新的部分 | (yes)、(no) |
By-Hash* | 校验,用于控制是否验证校验码 | (yes)、(no)、(force) |
小贴士:带 *
标记的参数为可选参数,默认配置中不会包含。
转换示例
以官方 docker-ce 仓库为例,原格式:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/debian bookworm stable
转换后:
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: bookworm
Components: stable
Signed-By: /etc/apt/keyrings/docker.gpg
# 需要注意的是部分 Debian 官方支持的架构,Docker CE 版本并不支持,因此需要添加以下参数
Architectures: amd64
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2025-02-18 12:09 PM