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)日志,了解更新情況(如成功/失敗、更新的軟件包)。