要锁定linux系统中软件包版本,可使用yum versionlock插件。具体步骤如下:1. 安装插件(若未安装):执行sudo yum install yum-plugin-versionlock;2. 锁定包版本:使用sudo yum versionlock

在Linux系统管理中,有时候你希望某个软件包不要被意外升级,比如为了保持环境稳定或兼容性。这时候就可以用 yum versionlock 插件来锁定特定版本的软件包。它能让你指定只允许使用某个具体版本,避免因自动更新引发问题。

安装 yum-versionlock 插件
如果你还没安装这个插件,首先要确认它是否已经存在你的系统里。大多数基于 Yum 的发行版(如 CentOS、RHEL)默认都自带了这个插件,但可能没有启用。
你可以通过下面的命令安装:

-
检查是否已安装:
rpm -q yum-plugin-versionlock
-
如果没安装,可以通过以下命令安装:

sudo yum install yum-plugin-versionlock
安装完成后,插件会自动生效,不需要额外配置。
添加版本锁定规则
添加锁定规则是这个插件的核心功能。你可以锁定某个包的具体版本,也可以只锁定包名,这样所有当前已安装的版本都会被保留。
使用方法如下:
sudo yum versionlock
例如,如果你想锁定 nginx 当前安装的版本,可以运行:
sudo yum versionlock nginx
如果你只想锁定某个具体的版本,可以加上版本号:
sudo yum versionlock nginx-1.20.1-1.el7
执行完后,系统就会把这个规则写入 /etc/yum/versionlock.list 文件中。
常见操作包括:
- 锁定多个包:
sudo yum versionlock package1 package2 - 使用通配符:
sudo yum versionlock php*可以锁定所有以 php 开头的包
查看和删除锁定规则
锁定之后,你可能会想确认一下哪些包已经被锁定了。查看的方法很简单:
sudo yum versionlock list
这条命令会列出所有当前生效的锁定规则。
如果你需要解除某个包的锁定,可以用 delete 命令:
sudo yum versionlock delete nginx
同样,你也可以使用通配符来批量删除:
sudo yum versionlock delete php*
需要注意的是,这些操作只是修改了 versionlock.list 文件,并不会自动恢复已经被锁定版本的包到可更新状态。下次执行 yum update 时才会真正生效。
注意事项和使用建议
虽然 yum versionlock 很方便,但也有一些细节容易忽略:
- 锁定范围要准确:如果你只写包名而没有加版本号,那只会锁定当前已安装的版本。
- 定期检查锁定列表:时间久了可能会忘记当初锁了什么,建议定期清理不必要的条目。
-
与配置文件同步备份:
/etc/yum/versionlock.list是关键文件,建议在做系统备份时一并保存。 - 不影响新安装:锁定某个包并不会阻止你重新安装该包,只是不能升级而已。
基本上就这些。掌握这几个基本操作,就能很好地控制软件包版本更新了。










