CentOS作为企业级常用的Linux发行版,其系统组件和软件包会不断曝出安全漏洞,定期更新系统是修复这些漏洞、保障服务器安全的基础操作。不同版本的CentOS更新逻辑略有差异,但核心都围绕包管理工具展开。

更新前的准备工作
在正式执行更新操作前,需要完成几项基础准备,避免更新过程中出现数据丢失或服务异常:
- 备份重要数据:如果服务器上运行着关键业务,建议先备份配置文件、数据库和业务数据,防止更新过程中出现意外导致数据损坏。
- 检查磁盘空间:系统更新需要下载大量软件包,执行
df -h命令查看根分区和/var分区的剩余空间,确保至少有5GB以上的可用空间。 - 记录当前系统版本:执行
cat /etc/centos-release命令记录当前系统版本,方便后续验证更新是否成功。
CentOS 7系统更新步骤
CentOS 7默认使用yum作为包管理工具,更新流程如下:
1. 清理yum缓存
先清理旧的缓存数据,避免拉取到过时的软件包信息:
# 清理yum缓存 yum clean all # 重建缓存 yum makecache
2. 检查可用更新
执行以下命令查看当前系统有哪些可更新的软件包:
# 列出所有可更新的软件包 yum check-update
该命令会输出所有待更新的软件包名称、当前版本和目标版本,你可以根据输出判断是否有安全相关的更新项。
3. 执行全系统更新
确认需要更新后,执行以下命令升级所有可更新的软件包:
# 升级所有软件包,-y参数自动确认所有提示 yum update -y
如果只需要更新安全相关的补丁,可以执行以下命令只安装安全更新:
# 只安装安全相关的更新 yum update --security -y
4. 重启系统
部分内核或核心组件的更新需要重启系统才能生效,执行以下命令重启:
reboot
CentOS 8及以上版本更新步骤
CentOS 8开始默认使用dnf作为包管理工具,dnf兼容yum的大部分命令,更新流程如下:
1. 清理缓存并检查更新
# 清理缓存 dnf clean all # 重建缓存 dnf makecache # 检查可用更新 dnf check-update
2. 执行系统更新
全量更新命令:
dnf update -y
仅更新安全补丁命令:
dnf update --security -y
3. 重启系统
reboot
更新后验证
系统重启后,需要验证更新是否成功,漏洞是否修复:
- 查看系统版本:执行
cat /etc/centos-release,确认系统版本是否有变化。 - 检查已安装的内核版本:执行
uname -r,确认内核是否更新到最新版本。 - 再次检查更新:执行
yum check-update或dnf check-update,确认没有剩余的可更新安全包。
常见更新问题处理
依赖冲突问题
如果更新时出现依赖冲突报错,可以尝试执行以下命令修复依赖关系:
# CentOS 7 yum install -y yum-utils package-cleanup --oldkernels --count=2 # 再次尝试更新 yum update -y
更新失败问题
如果更新过程中断,可以重新执行更新命令,yum和dnf都支持断点续传,不会重复下载已经下载完成的软件包。如果多次失败,可以更换yum源为国内镜像源后再尝试更新。
注意:生产环境更新系统建议先在测试环境验证更新流程,确认更新后业务服务正常运行再操作正式环境,避免更新导致业务中断。