You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在YUM更新时排除需重启的软件包(如内核包)?

YUM排除需重启软件包(如内核)的解决方案

当然有对应的处理方案!YUM本身就提供了多种灵活的方式来帮你跳过那些更新后需要重启系统、又没拿到安全审批的软件包,比如内核这类核心组件。下面是几种常用的方法,你可以根据自己的需求选择:

临时排除(单次更新生效)

如果只是这次更新不想碰特定包,直接在命令行用--exclude参数指定即可:

  • 排除所有内核相关包:
    yum update --exclude=kernel*
  • 精准排除某个特定版本的内核:
    yum update --exclude=kernel-3.10.0-1160.el7.x86_64
    这种方式的好处是只影响当前操作,不会改变后续的YUM默认行为。

永久排除(长期生效)

要是你长期都不想更新某些包,可以通过配置文件来设置:

  1. 全局配置:编辑YUM主配置文件/etc/yum.conf,在[main]段落里添加exclude指令,比如:
    [main]
    # 其他原有配置...
    exclude=kernel* kernel-devel* kernel-headers*
    
    这样每次执行yum update都会自动跳过这些包。
  2. 针对特定仓库配置:如果只想在某个软件仓库里排除包,编辑对应仓库的配置文件(比如/etc/yum.repos.d/CentOS-Base.repo),在目标仓库的段落(如[base])里添加exclude即可,不会影响其他仓库的更新。

使用版本锁定插件

如果你需要精准锁定某个版本的包,不让它被更新,可以用yum-plugin-versionlock插件:

  1. 先安装插件:
    yum install yum-plugin-versionlock
  2. 锁定指定版本的内核:
    yum versionlock kernel-3.10.0-1160.el7.x86_64
  3. 后续如果需要解锁,执行:
    yum versionlock delete kernel-3.10.0-1160.el7.x86_64
    要是想清空所有锁定,用yum versionlock clear就行。

另外,如果你不确定哪些包更新后会导致系统重启,可以先执行yum check-update列出所有待更新包,再结合系统组件的特性判断(比如内核、systemd这类核心服务通常更新后需要重启),再把这些包加入排除列表就好。

内容的提问来源于stack exchange,提问作者user227863

火山引擎 最新活动