1. 基礎全量升級:覆蓋所有可更新軟件包
使用sudo yum update命令可檢查并升級系統中所有已安裝的軟件包至最新版本。Yum會自動處理依賴關系,確保升級過程不會破壞軟件間的兼容性。若需跳過手動確認步驟(適合腳本自動化),可添加-y參數,命令變為sudo yum update -y,此時會自動回答“是”并直接開始下載與安裝。
2. 升級前準備:降低風險的關鍵步驟
/etc目錄下的配置文件、數據庫文件)。sudo yum check-update命令列出所有可更新的軟件包及版本信息,確認無關鍵沖突后再執行升級。sudo yum makecache命令刷新本地緩存。3. 排除特定軟件包:避免不必要的升級
若某些軟件包(如自定義編譯的內核、第三方工具)不需要升級,可使用--exclude參數排除。例如,排除kernel和httpd包的升級:sudo yum update --exclude=kernel,httpd;也可使用簡寫形式sudo yum -x kernel -x httpd update。支持正則表達式,如--exclude=*-devel可排除所有以-devel結尾的開發包。
4. 批量升級指定軟件包:精準控制升級范圍
若只需升級部分軟件包(而非全部),可將包名寫入文件(如packages.txt,每行一個包名),然后通過$(cat packages.txt)讀取文件內容并批量升級。例如:
echo -e "nginx\nredis\ndocker-ce" > packages.txt # 創建包名列表
sudo yum update -y $(cat packages.txt) # 批量升級指定包
此方法適合需要優先升級核心服務(如Nginx、Redis)的場景。
5. 高級技巧:增強升級安全性與靈活性
--downloadonly和--downloaddir參數。例如,將更新包下載到/rpm目錄:sudo yum install --downloadonly --downloaddir=/rpm $(cat packages.txt)。versionlock插件鎖定特定軟件包的版本。例如,鎖定nginx包:sudo yum versionlock add nginx;解鎖則用sudo yum versionlock delete nginx。鎖定后,該包將不會被自動升級。sudo yum list updates命令確認是否還有未升級的包;或使用rpm -qa | grep package_name檢查特定包的版本是否符合預期。注意事項
systemctl restart nginx);sudo yum deplist package_name命令查看依賴關系,手動解決沖突。