Yum在Linux中的更新策略及配置方法
Yum(Yellowdog Updater, Modified)是CentOS、RHEL、Fedora等基于RPM的Linux发行版的核心包管理工具,其更新策略围绕灵活性、安全性和自动化设计,涵盖手动控制、自动定时、安全优先、版本锁定等多种场景,满足不同系统管理需求。
手动更新是最基础的更新方式,适用于需要精确控制更新过程的场景(如测试环境、避免关键服务中断)。
yum check-update命令列出所有可更新的软件包(无更新则提示“Nothing to do”),不执行实际升级。yum update命令会下载并安装所有可更新软件包及其依赖项(包括内核),更新前会提示确认(输入y继续)。yum update package_name(如yum update nginx)仅更新指定软件包,避免不必要的更新。-y参数(如yum -y update)可跳过确认步骤,直接执行升级,适用于脚本自动化。自动定时更新用于保持系统持续最新,减少手动操作负担,适用于生产环境。常见实现方式有两种:
yum-cron是专门用于自动执行Yum更新的守护进程,通过配置文件可灵活控制更新行为。
sudo yum install yum-cron # 安装yum-cron
sudo systemctl start yum-cron # 启动服务
sudo systemctl enable yum-cron # 设置开机自启
update_cmd:更新命令(update/upgrade,upgrade会同步更新软件包和系统内核);apply_updates:是否自动应用更新(yes/no,设为yes则自动执行更新);update_interval:更新检查间隔(如1d表示每天、7h表示每周);exclude:排除不需要更新的软件包(如exclude=kernel*排除内核更新,避免因内核变更导致系统重启)。通过系统Cron定时任务实现更灵活的更新安排(如指定具体时间)。
sudo crontab -e
yum update -y(自动确认更新):0 2 * * * yum update -y >> /var/log/yum_auto_update.log 2>&1
日志会记录到/var/log/yum_auto_update.log,便于后续检查。安全更新是保障系统稳定性的关键,Yum支持仅更新安全相关的软件包,减少不必要的风险。
/etc/yum/pluginconf.d/security.conf,启用安全更新插件:[main]
enabled=1 # 启用插件
security_update_interval=7 # 每7天检查一次安全更新
yum update --security命令仅安装安全漏洞修复补丁,避免引入新功能或非必要变更。版本锁定用于防止关键软件包被意外升级(如内核、数据库),确保系统兼容性。
yum update命令中使用--exclude参数(如yum update --exclude=kernel*),仅本次更新排除指定软件包。yum versionlock插件:
yum versionlock add package_name(如yum versionlock add nginx);yum versionlock list;yum versionlock delete package_name或yum versionlock clear(清除所有锁定)。优先级控制用于确保系统优先从官方或可信源获取更新,避免从第三方源安装不稳定或不安全的软件包。
sudo yum install yum-plugin-priorities
/etc/yum.repos.d/CentOS-Base.repo),在[base]、[updates]等官方源段添加:priority=1 # 数值越小,优先级越高(官方源设为1,第三方源设为2或更高)
插件会根据优先级自动选择软件包来源,优先使用高优先级源。/etc、/home、数据库),防止更新失败导致数据丢失。/var/log/yum.log(Yum)或/var/log/dnf.log(DNF)日志,了解更新情况(如成功/失败、更新的软件包)。