如何让Ubuntu24.04优先选择指定的source文件(清华源)

目录

[一、Ubuntu 24.04 的源配置变化](#一、Ubuntu 24.04 的源配置变化)

二、新增清华源.source文件

三、获取源的"Origin"标识

四、配置优先级文件

五、验证优先级是否生效


在 Ubuntu 24.04 中,要让系统优先使用你指定的 .source 文件,核心方法是利用 APT 的 Pin-Priority(固定优先级)机制。

你可以通过创建优先级配置文件,告诉系统哪个软件源是"首选"。

一、Ubuntu 24.04 的源配置变化

从 Ubuntu 24.04 开始,默认的软件源配置文件路径已从传统的

/etc/apt/sources.list

变更为

/etc/apt/sources.list.d/ubuntu.sources(使用 DEB822 格式)

所有在 /etc/apt/sources.list.d/ 目录下以 .list 或 .sources 结尾的文件都会被 APT 读取。

二、新增清华源.source文件

bash 复制代码
sudo vim /etc/apt/sources.list.d/tsinghua.sources

粘贴以下内容:

bash 复制代码
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

保存后更新索引:

bash 复制代码
sudo apt update

三、获取源的"Origin"标识

确认优先级:

bash 复制代码
apt-cache policy

可以看到origin 字段的值,通常是 mirrors.tuna.tsinghua.edu.cn

四、配置优先级文件

APT 通过 /etc/apt/preferences.d/ 目录下的文件来管理优先级;

需要在这里创建一个配置文件,定义你的指定源拥有更高的优先级;

创建优先级配置文件(例如命名为 tsinghua-pin):

bash 复制代码
sudo vim /etc/apt/preferences.d/tsinghua-pin

对所有软件包生效,写入以下内容:

bash 复制代码
Package: *
Pin: origin "mirrors.tuna.tsinghua.edu.cn"
Pin-Priority: 1000

Package: *:规则对所有软件包生效。

Pin: origin "mirrors.tuna.tsinghua.edu.cn":指定要优先的源,这里填上一步查到的 Origin。

Pin-Priority: 优先级值设为 1000(大于默认的 500),表示该源的包将优先于其他源。

如果只想优先某个特定软件包(比如 nginx)从你的指定源安装,可以这样写:

bash 复制代码
Package: nginx
Pin: origin "mirrors.tuna.tsinghua.edu.cn"
Pin-Priority: 1000

保存文件并退出;

bash 复制代码
# 更新软件源列表
sudo apt update

五、验证优先级是否生效

配置完成后,需要更新包列表并检查优先级是否被正确识别

bash 复制代码
# 1. 查看所有源的优先级信息
apt-cache policy

# 2. 检查特定软件的优先级情况,例如:
apt-cache policy nginx

在 apt-cache policy 的输出中,你会看到每个源对应的优先级数值。如果配置正确,你的指定源优先级应该显示为你设置的 1000,而其他源的优先级通常是 500 。这样,当安装或更新软件时,APT 就会优先从你的指定源获取包。

💡 补充说明

Ubuntu 24.04 采用 sources.list.d/ubuntu.sources 作为主配置,但所有 .list 和 .sources 文件都会被 APT 识别。可以保留自己创建的 .source 文件在 sources.list.d 目录下,并通过优先级机制让 APT 优先选择;

备份是好习惯:在修改任何系统配置文件前,记得备份原始文件 。例如:sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak

相关推荐
zhangrelay2 天前
《机器人控制器设计与编程》课程习题资料-2026
linux·笔记·学习·ubuntu
Linux-lucky2 天前
39-41-Linux学习之旅之redis缓存基础与NFS基础
linux·运维·mysql·ubuntu
QQ14220784492 天前
2012 年的老 ThinkPad E430 改装 Ubuntu 24.04全程翻车排查实录
ubuntu·项目复盘
阿钱真强道2 天前
06 嵌入式操作系统 | vim 与软件管理:apt / 源码编译
ubuntu·vim·嵌入式·apt·源码编译
牢姐与蒯2 天前
Linux进程间通信(三).基于匿名管道的进程池的实现
linux·运维·服务器·ubuntu
Linux-lucky3 天前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
士訫3 天前
【Linux 踩坑】HP Victus RTX4050 Ubuntu 系统双屏无法同时点亮解决方案(完美适配 Advanced Optimus 机型)
ubuntu
指尖的爷3 天前
ARM 架构 Ubuntu(RK3588/aarch64)go开发环境安装手册
ubuntu·架构·golang
虚无的纽扣3 天前
【Linux】将进程知识与基础IO融会贯通——简单自定义Shell的实现
linux·ubuntu
问简4 天前
Ubuntu 26 + Windows 10 双系统 NTFS 共享盘笔记
ubuntu