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命令查看依赖关系,手动解决冲突。