温馨提示×

yum如何锁定版本

小樊
59
2026-07-23 08:00:29
栏目: 编程语言

在 CentOS / RHEL / Rocky / Alma 等使用 yum / dnf 的系统中,可以通过以下几种方式锁定软件包版本,防止被误升级。


一、使用 yum versionlock(最常用 ✅)

1️⃣ 安装 versionlock 插件

yum install -y yum-plugin-versionlock

CentOS 8 / Rocky / Alma 用 dnf 也一样:

dnf install -y dnf-plugin-versionlock

2️⃣ 锁定指定软件包版本

锁定当前已安装版本

yum versionlock add nginx

锁定指定版本

yum versionlock add nginx-1.20.2

3️⃣ 查看已锁定的包

yum versionlock list

4️⃣ 解除锁定

yum versionlock delete nginx

或解除所有:

yum versionlock clear

5️⃣ 验证是否生效

yum update nginx

如果版本被锁定,会提示:

Nothing to do

二、使用 exclude 方式(简单粗暴)

编辑 yum 配置文件

vi /etc/yum.conf

添加 exclude

exclude=nginx*

或:

exclude=nginx-1.20*

✅ 适用于:

  • 不想让某个包被升级
  • 不关心具体版本号

❌ 缺点:

  • 不够精细
  • 不能锁定到具体版本

三、使用 dnf(CentOS 8+ / Rocky / Alma)

dnfyum 基本兼容:

dnf versionlock add nginx

查看:

dnf versionlock list

四、锁定内核版本(常见需求)

方法 1:exclude

exclude=kernel*

方法 2:versionlock

yum versionlock add kernel

五、锁定多个包示例

yum versionlock add \
  nginx \
  mysql \
  php

六、推荐做法 ✅

场景 推荐方式
锁定具体版本 yum versionlock
禁止升级某类软件 exclude
生产环境 versionlock + 定期 review
容器 / 最小化系统 锁定 + 不自动更新

七、常见坑 ⚠️

  • yum update 仍然会尝试升级,但被锁定包不会变
  • yum reinstall 不受限制
  • 删除 lock 后记得重新检查依赖

如果你愿意,可以告诉我:

  • ✅ 系统版本(CentOS 7 / Rocky 8 / Alma 9)
  • ✅ 要锁定的软件(如 MySQL / kernel / docker)

我可以给你精确命令

0