本文旨在记录并阐述在基于 Debian 13 (代号 trixie) 的新版树莓派系统上,APT 包管理器软件源配置的现代方法。重点在于识别配置文件的格式演进,并采用符合当前系统默认及官方推荐的标准进行正确操作。

在新版本里,以前教程中常说的 /etc/apt/sources.list/etc/apt/sources.list.d/raspi.list 文件已经不再使用,它们可能内容为空或者文件根本不存在。取而代之的是 /etc/apt/sources.list.d/ 目录下以 .sources 为后缀的新文件。

本文将引导你理解这一变化,并用新方法正确、高效地为你的树莓派配置软件源。

一、配置架构变更:从集中式到模块化

新版本系统在 APT 源配置上呈现显著的架构变化,其核心是从单一主文件向模块化目录结构的转变。

配置要素传统模式 (Deprecated)现行模式 (trixie 及衍生系统)
核心入口/etc/apt/sources.list (单文件)该文件现在为空。
主配置目录/etc/apt/sources.list.d/ (辅助)核心配置位置,系统与第三方源均存放于此。
树莓派源文件raspi.listraspi.sources
系统Debian源混合于sources.listdebian.sources
文件格式单行格式 (One-Line Style)DEB822 格式 (deb822-style)

结论:在新系统中,操作焦点应转移至 /etc/apt/sources.list.d/ 目录下相应的 .sources 文件。

二、格式演进:从单行格式到 DEB822 结构化格式

APT 支持两种源定义格式,其设计哲学与语法存在根本差异。之前教程中常见的是单行格式,现在最新使用 DEB822 格式。

2.1 单行格式 (One-Line Style)

  • 文件扩展名.list
  • 状态即将弃用
  • 语法示例
    deb http://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
    deb-src http://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
    
  • 缺陷:每行承载所有参数,依赖空格分隔,易产生解析歧义;延续性差;管理复杂源时冗余度高。

2.2 DEB822 格式 (deb822-style)

  • 文件扩展名.sources
  • 状态当前推荐及默认格式。自 APT 1.1 (2015) 引入,旨在逐步取代单行格式。
  • 语法示例
    Types: deb
    URIs: http://deb.debian.org/debian/
    Suites: trixie trixie-updates
    Components: main contrib non-free non-free-firmware
    Signed-By: /usr/share/keyrings/debian-archive-keyring.pgp
    
  • 优势
    • 结构化:键值对形式,清晰易读。
    • 强健性:避免空格解析错误,支持多行值。
    • 面向未来:官方指定的演进方向,便于工具解析。

三、标准操作步骤:配置 DEB822 格式软件源

以下流程以替换默认 Debian 源为国内镜像(示例为中国科学技术大学镜像源)为例。

步骤 1:定位并编辑配置文件
需要修改下面两处文件,修改方法相同。

sudo nano /etc/apt/sources.list.d/debian.sources
sudo nano /etc/apt/sources.list.d/raspi.sources

步骤 2:修改 URIs 字段
原始配置通常指向 http://deb.debian.org/debian/。需将每个配置块中的 URIs: 字段值替换为镜像源地址。debian.sources 中有两个 URIs 需要修改,raspi.sources 只有一个 URIs 需要修改。

# 修改前
URIs: http://deb.debian.org/debian/
# 修改后
URIs: http://mirrors.ustc.edu.cn/debian/

步骤 3:保存并更新本地索引
执行更新命令,APT 将从新配置的源获取包索引。

sudo apt update

输出中显示 Hit 表示索引缓存有效,显示 Get 表示下载新索引,均属正常。

四、源码仓库 (deb-src) 的按需配置

重要区分deb 类型与 deb-src 类型服务于不同目的。如果目的是安装软件不需要添加deb-src标志。

  • deb:提供预编译的二进制软件包。为系统运行和软件安装所必需。
  • deb-src:提供软件源代码包。仅用于查阅、审计或重新编译源码,普通用户无需启用

正确启用方法:无需单独创建配置块。应在现有源的 Types 字段中同时声明 debdeb-src

# 启用源码仓库的配置(两处)
# /etc/apt/sources.list.d/debian.sources
# /etc/apt/sources.list.d/raspi.sources
Types: deb deb-src  # 在同一字段内声明

更新验证:任何配置更改后,必须执行 sudo apt update 以验证配置正确性并更新索引。

启用后,可使用 apt source <package_name> 命令获取特定软件包的源代码。

五、主要参考文献

  1. USTC Mirror Help: https://unicom.mirrors.ustc.edu.cn/help/debian.html
  2. sources.list(5): https://manpages.debian.org/trixie/apt/sources.list.5.en.html

更多推荐