Ubuntu默认不按sources.list顺序选源,而是依赖APT pinning机制,需通过/etc/apt/preferences.d/中Pin-Priority规则显式指定优先级;必须先用apt-cache policy确认源的origin或a=等元数据标识,否则配置无效。

Ubuntu 默认不按 sources.list 文件中顺序选源,而是靠 APT 的 pinning 机制决定哪个源的包被安装——光调换 sources.list 行序没用,必须用 /etc/apt/preferences.d/ 下的规则文件显式设置 Pin-Priority。
怎么查目标源的 origin 或 release 标识
不先确认源的准确标识,配置会完全失效。APT 不认 URL,只认元数据里的 origin、archive(即 a=)、codename 等字段。
- 运行
apt-cache policy查所有源当前权重和候选来源 - 运行
apt-cache policy nginx(替换为你关心的包名)看它当前“Candidate”来自哪个origin和a=值 - 对镜像源(如清华源),通常
origin是"mirrors.tuna.tsinghua.edu.cn";对官方源,origin多为"archive.ubuntu.com"或"security.ubuntu.com",a=对应你的发行版代号(如noblefor 24.04)
写 /etc/apt/preferences.d/ 下的 pin 规则文件
规则文件名任意(如 tsinghua-pin 或 security-pin),但必须放在 /etc/apt/preferences.d/ 目录下,且后缀不能是 .disabled。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 全局优先清华源示例:
Package: *Pin: origin "mirrors.tuna.tsinghua.edu.cn"Pin-Priority: 1001 - 只让
openssl从安全源装:Package: opensslPin: release a=noble-securityPin-Priority: 990 - 降级第三方 PPA(避免覆盖系统关键包):
Package: *Pin: release o=LP-PPA-someuser-somerepoPin-Priority: 100
注意:Pin-Priority > 1000 才能强制覆盖默认候选;500 是默认值;
验证是否生效
改完必须 sudo apt update,否则 apt policy 显示的仍是旧状态。
- 查单个包:运行
apt policy <package-name></package-name>,看 “Candidate” 行是否指向你期望的源,且 “Version table” 里对应源的优先级数字正确 - 查全部源权重:运行
apt-cache policy,检查各源的release条目是否列出了你设的Pin-Priority - 常见失效原因:文件名含空格或非法字符、
Pin:行末尾多空格、origin值漏掉双引号、a=写错发行版代号(比如把noble写成24.04)
最易忽略的是:APT 的 pinning 规则只影响 apt install 和 apt upgrade 时的包选择,不影响 apt download 或手动 dpkg -i;而且一旦某个源里没有你要的版本,再高的 Pin-Priority 也无效——它不拉取、只筛选。

















