apt 源文件格式
deb 系发行版的软件源写在 /etc/apt/sources.list 或 /etc/apt/sources.list.d/ 下的文件里。传统格式一行由四部分组成:类型、仓库地址、发行版代号、组件列表。代号必须与本机系统版本严格对应,拷贝其他版本机器的源文件是 404 报错最常见的原因。较新系统也支持 deb822 风格的 .sources 文件。
基本信息
| 传统格式 | deb 地址 代号 组件 |
|---|---|
| 文件位置 | /etc/apt/sources.list 与 sources.list.d/ |
| 变体格式 | deb822(.sources 文件) |
| 生效命令 | apt update |
| 排障命令 | apt policy 与 apt-cache policy |
典型使用场景
- 内网环境把默认源替换成企业镜像源
- 临时挂载本地 ISO 作为安装源
- 添加第三方仓库以获取特定软件
- 排障时确认某个包的候选版本来自哪个源
- 统一多台主机的源配置以保持一致
传统格式样例
传统格式样例
deb http://mirrors.example.com/uos/ 20 main contrib non-free
deb http://mirrors.example.com/uos/ 20-updates main
deb http://mirrors.example.com/uos/ 20-security main更新与验证
更新与验证
cp /etc/apt/sources.list /etc/apt/sources.list.bak # 改前备份
vim /etc/apt/sources.list # 编辑源地址与代号
sudo apt update # 刷新索引
sudo apt policy | head -20 # 查看各源的优先级与候选版本
apt-cache policy nginx # 查看某个包的候选来源
ls /etc/apt/sources.list.d/ # 确认附加源目录内容常见报错对照
| 现象 | 原因 | 处理 |
|---|---|---|
| 404 找不到文件 | 地址或代号拼错 | 核对地址与系统代号 |
| 签名验证失败 | 缺少公钥 | 按提示导入仓库公钥 |
| 组件名无效 | 组件与仓库不匹配 | 确认该仓库支持的组件 |
| 候选版本不对 | 启用了多余的源 | 逐个源验证后再保留 |
| 索引过期 | 缓存未刷新 | 重新执行 apt update |
使用建议
- 源文件只保留必要的仓库,减少冲突
- 改动前先备份原文件
- 第三方源逐个添加并验证
- 代号与系统版本保持一致
- 把源配置纳入配置管理与基线核查
代号与系统版本必须一致:把其他版本机器的源文件照搬过来,会出现大面积找不到文件的报错,先确认本机版本代号再改源。