CentOS7 yum锁定软件版本防止自动更新命令 Linux
前言
生产服务器为了稳定,不希望某些关键软件随 yum update 被升级到新版本,比如 MySQL、Nginx、内核。yum 自带版本锁定插件 yum-versionlock,可以把指定包固定在当前版本,后续更新跳过它。本文讲解安装插件、锁定、查看、解锁的完整命令,适配 CentOS7。
操作步骤
1. 安装 versionlock 插件
yum install -y yum-plugin-versionlock
2. 锁定当前已安装包版本
yum versionlock nginx
yum versionlock mysql-community-server
3. 查看已锁定列表
yum versionlock list
4. 批量锁定(先看完整包名)
yum list installed nginx
yum versionlock add nginx
5. 解锁
yum versionlock delete nginx
6. 验证 update 是否跳过锁定包
yum update --showduplicates | grep nginx
yum update
被锁定的包不会出现在更新列表。
7. 删除全部锁定
yum versionlock clear
常见坑
- 包名写错或只写部分名,versionlock 匹配不到,锁定无效。
- 锁定后手动用 yum install 新版本仍可装,只是 update 不升级。
- 插件未安装命令报 command not found。
- 内核包锁定后安全补丁无法更新,需定期评估手动升级。
- versionlock 只锁 yum,源码编译安装的软件不受影响。
- 锁定规则存于 /etc/yum/pluginconf.d/versionlock.list,可备份迁移。
- 依赖包被锁可能导致其他包无法更新,注意依赖关系。
总结
yum-versionlock 是生产环境固定关键软件版本的标准手段:安装插件 → versionlock add 锁包 → list 核对 → delete 解锁。它只阻止 update 自动升级,不阻止手动安装。锁定要挑真正需要稳定的包,内核这类安全补丁包谨慎长期锁定。
遇到问题加QQ23979811 协助处理