一、需求说明

  Centos操作系统每年都会有小版本的更新发布,作为信息系统运维,原则上我们新安装操作系统时会安装最新的稳定版,新版本修复bug和漏洞,可以规避一些漏洞可能引发的安全事故。因为不定期会有新装机部署需求,长时间下来会出现整个基础设施环境中存在很多的操作系统版本,我们可以指定操作系统升级计划,定期组织升级,统一操作系统版本,方便批量运维和管理,减少运维成本。本文以centos7操作系统为例,介绍centos7小版本升级步骤。
  注意事项:

  • 由于系统与硬件的兼容性问题,有可能升级内核后导致服务器不能正常启动,影响会比较大,没有特别的需要,建议不要随意升级内核,升级前先测试环境安装验证。
  • 升级前要备份好数据,然后检查备份/etc/fstab 磁盘挂载记录。

二、升级步骤

0、升级前的准备

  升级centos系统版本需要配置centos系统YUM源和扩展源,centos7系统安装时已默认安装,如果未安装或者国外镜像网速慢,可以使用如下命令安装阿里云镜像源。

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

1、内核升级步骤

1)、查看可升级版本

使用命令yum list kernel可以查看已安装的内核版本和可以升级至的最新内核版本,示例最新可以升级的内核版本为3.10.0-1160.15.2

[root@test1 yum.repos.d]# yum list kernel
 Loaded plugins: fastestmirror, langpacks
 Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
 Installed Packages
 kernel.x86_64 3.10.0-957.el7 @anaconda
 Available Packages
 kernel.x86_64 3.10.0-1160.15.2.el7 updates

2)、升级内核版本至最新版本

[root@test1 yum.repos.d]# yum update -y kernel
 Loaded plugins: fastestmirror, langpacks
 Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
 Resolving Dependencies
 –> Running transaction check
 —> Package kernel.x86_64 0:3.10.0-1160.15.2.el7 will be installed
 –> Processing Dependency: linux-firmware >= 20190429-72 for package: kernel-3.10.0-1160.15.2.el7.x86_64
 –> Running transaction check
 —> Package linux-firmware.noarch 0:20180911-69.git85c5d90.el7 will be updated
 —> Package linux-firmware.noarch 0:20200421-80.git78c0348.el7_9 will be an update
 –> Finished Dependency Resolution

 Dependencies Resolved

 =====================================================================================================================================================
 Package Arch Version Repository Size
 =====================================================================================================================================================
 Installing:
 kernel x86_64 3.10.0-1160.15.2.el7 updates 50 M
 Updating for dependencies:
 linux-firmware noarch 20200421-80.git78c0348.el7_9 updates 80 M

 Transaction Summary
 =====================================================================================================================================================
 Install 1 Package
 Upgrade ( 1 Dependent package)

 Total download size: 131 M
 Downloading packages:
 No Presto metadata available for updates
 (1/2): linux-firmware-20200421-80.git78c0348.el7_9.noarch.rpm | 80 MB 00:00:11
 (2/2): kernel-3.10.0-1160.15.2.el7.x86_64.rpm | 50 MB 00:00:12
 -----------------------------------------------------------------------------------------------------------------------------------------------------
 Total 10 MB/s | 131 MB 00:00:12
 Running transaction check
 Running transaction test
 Transaction test succeeded
 Running transaction
 Updating : linux-firmware-20200421-80.git78c0348.el7_9.noarch 1/3
 Installing : kernel-3.10.0-1160.15.2.el7.x86_64 2/3
 Cleanup : linux-firmware-20180911-69.git85c5d90.el7.noarch 3/3
 Verifying : linux-firmware-20200421-80.git78c0348.el7_9.noarch 1/3
 Verifying : kernel-3.10.0-1160.15.2.el7.x86_64 2/3
 Verifying : linux-firmware-20180911-69.git85c5d90.el7.noarch 3/3

 Installed:
 kernel.x86_64 0:3.10.0-1160.15.2.el7

 Dependency Updated:
 linux-firmware.noarch 0:20200421-80.git78c0348.el7_9

 Complete!

3)、查看已安装的所有内核版本

[root@test1 yum.repos.d]# rpm -q kernel
 kernel-3.10.0-957.el7.x86_64
 kernel-3.10.0-1160.15.2.el7.x86_64

4)、重启操作系统

[root@test1 yum.repos.d]# reboot

5)、查看当前操作系统内核版本

[root@test1 ~]# uname -a
 Linux test1 3.10.0-1160.15.2.el7.x86_64 #1 SMP Wed Feb 3 15:06:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

6)、卸载旧内核

此步骤可选,建议卸载旧内核之前,先验证系统安装的软件是否正常运行

[root@test1 ~]# yum remove kernel-3.10.0-957.el7.x86_64 -y

7)、清理包

[root@test1 ~]# yum clean all

2、升级Centos7所有包

1)、查看centos7版本

[root@test1 ~]# cat /etc/redhat-release
 CentOS Linux release 7.6.1810 (Core)

2)、升级系统

此步骤比较耗时,需要耐心等待

[root@test1 ~]# yum update -y
 …
 xorg-x11-server-Xorg.x86_64 0:1.20.4-15.el7_9 xorg-x11-server-common.x86_64 0:1.20.4-15.el7_9
 yum.noarch 0:3.4.3-168.el7.centos yum-plugin-fastestmirror.noarch 0:1.1.31-54.el7_8
 yum-utils.noarch 0:1.1.31-54.el7_8 zlib.x86_64 0:1.2.7-19.el7_9

 Replaced:
 iwl7265-firmware.noarch 0:22.0.7.0-69.el7 urw-fonts.noarch 0:2.4-16.el7 webkitgtk4-plugin-process-gtk2.x86_64 0:2.20.5-1.el7

 Complete!

3)、重启操作系统

示例升级时,未重启查看版本已经升级到7.9.2009

[root@test1 ~]# reboot

4)、检查版本

[root@test1 ~]# cat /etc/redhat-release
 CentOS Linux release 7.9.2009 (Core)

3、升级Centos7版本但不升级内核

1)、查看操作系统版本和内核版本

[root@test2 ~]# cat /etc/redhat-release
 CentOS Linux release 7.6.1810 (Core)
 [root@test2 ~]# yum list kernel -q
 Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
 Installed Packages
 kernel.x86_64 3.10.0-957.el7 @anaconda
 Available Packages
 kernel.x86_64 3.10.0-1160.6.1.el7 updates

centos 7 无损升级docker centos7升级软件_linux

2)、升级所有软件包(内核除外)

[root@test2 ~]# yum --exclude=kernel* update -y
 …
 Skipped (dependency problems):
 kmod-kvdo.x86_64 0:6.1.3.23-5.el7 vdo.x86_64 0:6.1.3.23-5.el7
 、
 Replaced:
 iwl7265-firmware.noarch 0:22.0.7.0-69.el7 urw-fonts.noarch 0:2.4-16.el7 webkitgtk4-plugin-process-gtk2.x86_64 0:2.20.5-1.el7

 Complete!

3)、重启操作系统

[root@test2 ~]# reboot

4)、检查内核版本和系统版本

[root@test2 ~]# uname -a
 Linux test2 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
 [root@test2 ~]# cat /etc/redhat-release
 CentOS Linux release 7.9.2009 (Core)

三、FAQ

1、升级系统不升级内核情况下升级软件包时报错

  • 报错信息:
  • 解决方案
    使用yum --exclude=kernel* update -y --skip-broken升级