CentOS中如何锁定软件包以防止其被更新或重装?
解决YUM禁止指定包更新/重装的问题
以下是两种可靠的解决办法,能彻底阻止目标包被更新或重装:
方法一:使用yum-plugin-protect-packages插件
这是最推荐的官方解决方案,通过插件实现包的强保护:
- 安装插件:
yum install yum-plugin-protect-packages - 启用插件:
编辑/etc/yum/pluginconf.d/protect-packages.conf,确保配置项enabled=1 - 添加保护规则:
在/etc/yum/protected.d/目录下新建配置文件(比如protected-package.conf),写入需要保护的包名:
保存后,YUM会直接阻止该包的更新、重装、删除操作,任何修改命令都会触发报错。package-name
方法二:通过RPM标记包为不可修改
直接从RPM数据库层面锁定包,禁止任何修改操作:
rpm --setflags immutable package-name
若后续需要取消保护,执行:
rpm --clearflags immutable package-name
此方法属于底层锁定,RPM会直接拒绝所有针对该包的变更请求,包括重装。
为什么之前的方法无效
exclude=package-name*仅排除仓库中的包,但无法阻止使用本地RPM文件或强制触发的重装操作yum versionlock仅锁定版本,允许重装同一版本的包,无法完全禁止重装行为
内容的提问来源于stack exchange,提问作者huynp
相关产品推荐
相关产品推荐

