在 CentOS 系统中,如果你不希望系统自动更新,但仍然需要使用 yum 或 dnf 来手动管理软件包,可以采取以下几种方式来禁用自动更新,同时保留系统的包管理功能。
一、CentOS 版本与包管理器
首先确认你使用的是哪个版本的 CentOS:
| CentOS 版本 | 包管理器 | 说明 |
|---|---|---|
| CentOS 7 | yum |
使用 yum 和 yum-cron 实现自动更新 |
| CentOS 8 / Stream | dnf |
dnf 是 yum 的下一代,功能更强大 |
二、禁止自动更新的方法
✅ 方法1:禁用自动更新服务(推荐)
对于 CentOS 7:
-
检查是否安装了
yum-cron(自动更新服务):systemctl status yum-cron -
停止并禁用服务:
systemctl stop yum-cron systemctl disable yum-cron -
(可选)卸载
yum-cron:yum remove yum-cron
对于 CentOS 8 / CentOS Stream:
-
检查
dnf-automatic服务:systemctl status dnf-automatic.timer -
禁用自动更新:
systemctl disable dnf-automatic.timer systemctl stop dnf-automatic.timer
✅ 方法2:修改配置文件(防止意外更新)
CentOS 7 修改 /etc/yum.conf
你可以设置 yum 不自动安装更新:
[main]
exclude=*.updated
# 或者设置不自动更新特定包
exclude=httpd nginx kernel*
也可以在 /etc/yum/yum-cron.conf 中设置:
update_cmd = none
apply_updates = no
CentOS 8 / Stream 修改 /etc/dnf/automatic.conf
[commands]
upgrade_type = none
apply_updates = no
✅ 方法3:使用 --exclude 参数手动控制
你在运行 yum update 或 dnf update 时,可以临时排除某些包:
yum update --exclude=kernel* --exclude=openssl*
或永久在 /etc/yum.conf 中添加:
exclude=kernel* openssl* httpd*
三、不更新系统是否安全?
⚠️ 注意:长期不更新系统可能会导致:
- 安全漏洞未修复(如 OpenSSL、glibc 等)
- 软件兼容性问题
- 内核 bug 无法修复
✅ 建议:不要完全禁用更新,而是:
-
定期手动检查更新:
yum check-update # CentOS 7 dnf check-update # CentOS 8+ -
在测试环境验证后,再在生产环境更新关键包。
四、总结:你想“不更新使用哪个”?
如果你是问:“不更新的情况下,该用哪个系统或版本?”
✅ 推荐选择:
- CentOS 7(已 EOL,不推荐新项目)
- CentOS Stream(滚动更新,适合开发者)
- 更推荐迁移到:
- Rocky Linux
- AlmaLinux
- 这些是 CentOS 的替代品,稳定性高,长期支持。
✅ 最佳实践建议:
- 关闭自动更新(防止意外重启或升级)
- 定期手动检查更新
- 关键服务器先在测试环境验证更新
- 使用
yum update --dry-run或dnf update模拟更新
如果你能补充你的具体需求(比如:为什么不想更新?是生产服务器?还是嵌入式设备?),我可以给出更精准的建议。
云计算HECS