在 CentOS 系统中,如果你不想更新系统或软件包,可以采取以下几种方式来控制更新行为。这通常适用于生产环境、服务器等需要保持稳定性的场景。
✅ 一、不更新系统的常见做法
1. 不运行 yum update 或 dnf upgrade
这是最直接的方式:
- CentOS 7 及以前:使用
yum - CentOS 8 及以后(如 CentOS Stream):使用
dnf
避免运行这些命令:
# 不要运行
sudo yum update
sudo dnf upgrade
2. 禁用自动更新
CentOS 默认不会自动更新,但如果安装了 yum-cron 或 dnf-automatic,可能会启用自动更新功能。
对于 CentOS 7:
编辑配置文件:
sudo vi /etc/yum/yum-cron.conf
确保设置:
update_cmd = none
apply_updates = no
然后停止并禁用服务:
sudo systemctl stop yum-cron
sudo systemctl disable yum-cron
对于 CentOS 8 / CentOS Stream:
编辑配置文件:
sudo vi /etc/dnf/automatic.conf
确保设置:
apply_updates = no
停止并禁用服务:
sudo systemctl stop dnf-automatic.timer
sudo systemctl disable dnf-automatic.timer
3. 使用 exclude 排除特定包更新
你可以在 /etc/yum.conf 中添加 exclude 字段来阻止某些包被更新:
[main]
exclude=kernel* httpd nginx
这样即使执行了 yum update,这些包也不会被升级。
4. 使用锁定包版本(yum-plugin-versionlock 或 dnf plugin)
你可以锁定某些包的版本,防止其被更新。
CentOS 7 安装插件:
sudo yum install yum-plugin-versionlock
锁定某个包:
sudo yum versionlock add package-name
查看已锁定的包:
sudo yum versionlock list
CentOS 8 / Stream:
安装插件:
sudo dnf install python3-dnf-plugin-versionlock
锁定包:
sudo dnf versionlock add package-name
✅ 二、如果你仍然想部分更新
你可以只安装安全更新或指定包更新,而不是全量更新:
# 更新指定包
sudo yum update httpd
# CentOS 8+
sudo dnf upgrade httpd
# 仅安装安全更新
sudo yum update --security
✅ 三、推荐:使用 CentOS Stream 的注意事项
如果你使用的是 CentOS Stream(注意不是传统的 CentOS),它是一个滚动发布的上游开发分支,默认会持续接收更新。如果你希望更稳定,建议使用:
- Rocky Linux
- AlmaLinux
- 或者旧版 CentOS ISO 镜像安装的传统稳定版
✅ 四、总结:如何“不更新”?
| 方法 | 描述 |
|---|---|
❌ 不运行 yum update / dnf upgrade |
最基本的方法 |
| 🚫 禁用自动更新服务 | 防止后台自动升级 |
🔒 使用 exclude 或 versionlock |
锁定关键包不升级 |
| 🔄 部分更新而非全量更新 | 有选择地进行更新 |
如果你能告诉我你的具体使用场景(比如是服务器、测试环境、还是桌面),我可以给你更具体的建议。
是否需要我帮你写一个脚本来自动配置“禁止更新”的策略?
CLOUD技术博