HCRM博客

CentOS系统软件升级攻略,yum与rpm双管齐下

Linux升级软件:CentOS yum与rpm双用法

服务器跑着跑着就提示“xxx 已过期”,想给 CentOS 升个级,却被 yum 和 rpm 两条命令绕晕?别急着复制粘贴,先把思路捋顺:yum 负责“自动跑腿”,rpm 负责“手工点单”,俩家伙搭配干活,才能把系统补丁、软件新版稳稳当当装进机器。下面直接上操作,顺带把常见坑一次填平。

CentOS系统软件升级攻略,yum与rpm双管齐下-图1

一、先分清:yum 与 rpm 各自管啥

rpm 是底层包管理器,手里攥着 .rpm 文件就能装、能卸、能查,但它不解决依赖;yum 是高层前端,先读仓库元数据,把依赖关系算清楚,再调用 rpm 干活。一句话:rpm 是“单点工具”,yum 是“整条流水线”。升级场景里,想省事用 yum,想精准用 rpm。

二、yum 升级三板斧

1. 刷新缓存

yum clean all && yum makecache

老旧缓存常把新版本“藏”起来,清掉再拉最新元数据,避免装到过期包。

CentOS系统软件升级攻略,yum与rpm双管齐下-图2

2. 查看可升级列表

yum list updates

输出里每行都带版本号,瞄一眼就能确认是不是自己关心的软件。

3. 批量升级

yum update -y

-y 自动答 yes,脚本里跑也不卡壳。只想升指定包,把名称补后面:yum update nginx -y

CentOS系统软件升级攻略,yum与rpm双管齐下-图3

踩坑提示:若系统启用了多个仓库,版本号打架时 yum 会挑“最新”但不一定是“最稳”,用 yum update pkg-name --enablerepo=repo-name 锁定来源更保险。

三、rpm 升级三步走

1. 下载 rpm 包

去官方镜像站或项目归档里抓对应架构的 .rpm,别下错 i686/x86_64/aarch64。

2. 本地升级

rpm -Uvh pkg.rpm

-U 代表 upgrade,若包不存在就全新安装;加 v 看进度,h 打进度条。

3. 检查回滚

rpm -q --changelog pkg-name

改不动或业务异常,用 rpm -Uvh --oldpackage old.rpm 秒回旧版。

依赖报错是 rpm 最头痛环节,缺啥手动补啥,循环依赖就交给 yum 去解。

四、双用法混合实战:内核升级示例

线上机器需要新版内核,但仓库里还没同步,决定“rpm 兜底,yum 收尾”。

步骤:

官网拉取 kernel-5.x.x.rpm 及配套 kernel-modules。

rpm -Uvh kernel*.rpm 本地装完,不重启。

yum update kmod-* dracut 把关联驱动、引导工具同步到最新。

grub2-set-default 0 设新内核为默认,重启验证。

如此既吃到新内核,又保证 initramfs、驱动链完整,回滚也只需 grub 切回旧条目。

五、常见疑问快答

Q:yum update 报冲突怎么办?

A:加 --skip-broken 先跳过,再 yum list extras 找孤立包,手动卸掉重装。

Q:rpm 升级后脚本没生效?

A:%post 脚本执行失败常因环境变量缺失,加 --force 强制重装并观察 /var/log/messages 报错。

Q:能不让 yum 升特定包吗?

A:编辑 /etc/yum.conf,加一行 exclude=nginx*,或 yum versionlock add nginx

六、脚本模板:一键安全升级

#!/bin/bash

set -e

LOG=/var/log/auto_update.log

echo "start $(date)" >> $LOG

yum clean all >> $LOG 2>&1

yum update -y >> $LOG 2>&1

if [ $? -eq 0 ]; then

echo "update ok" | tee -a $LOG

else

echo "update fail, check $LOG" | mail -s "update error" admin@foo.bar

fi

丢到 crontab 每周日执行,日志和邮件双保险,生产环境也能睡安稳。

七、收尾检查

升级完别急着关终端,跑一圈:

rpm -Va | grep -E '^..5' // 校验文件被改动

yum history list last // 看最后一次事务 ID,出问题时 yum history undo ID 秒回退

needs-restarting -r // 若返回 yes,说明内核或 glibc 级更新,需安排重启窗口

把上面流程吃透,yum 与 rpm 就不再是两条陌生命令,而是左手右手一起护住服务器稳定的搭档。记住:先验证、再升级、留回滚,线上操作永远多一手准备。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/41803.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~