当我们想去体验一个新软件的时候,好不如容打开官方下载地址,结果根据自己的操作系统一看,啊这怎么没有呢?
那么此时我们改怎么办,难道直接???
再或者说保留数据重新安装么,其实很多时候,平滑升级往往比重新安装更省时省力。
本文我们将介绍,离线方式升级CentOS7.9至CentOS8.2,当然了,别的版本也可以适用哈。
1、首先我们先来查询一下当前主机的操作系统版本及内核版本
[root@www ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@www ~]# uname -a
Linux www.xiaoxin.com 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@www ~]#
2、由于升级至CentOS8.X版本开始使用dnf替代yum,所以这里我们需要在现有操作系统安装dnf,dnf对于现有的本地iso镜像是没有的,我们需要进行离线安装,所以我们需要提前预备一台可以上网的主机,来下载我们安装dnf所需的依赖,进行rpm安装。
首先我们先安装epel。
[root@www ~]# yum install epel-release
。。。
Installing:
epel-release noarch 7-11 extras 15 k
Transaction Summary
============================================================================================================================================================================================
Install 1 Package
Total download size: 15 k
Installed size: 24 k
Is this ok [y/d/N]: y
Downloading packages:
epel-release-7-11.noarch.rpm | 15 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : epel-release-7-11.noarch 1/1
Verifying : epel-release-7-11.noarch 1/1
Installed:
epel-release.noarch 0:7-11
Complete!
3、安装完epel后,我们通过yum命令将安装dnf所需的依赖下载到指定目录下。
[root@www ~]# yum install dnf --downloadonly --downloaddir=/tmp/dnf
。。。
Installing:
dnf noarch 4.0.9.2-2.el7_9 extras 357 k
Installing for dependencies:
deltarpm x86_64 3.6-3.el7 base 82 k
dnf-data noarch 4.0.9.2-2.el7_9 extras 51 k
libcomps x86_64 0.1.8-14.el7 extras 75 k
libdnf x86_64 0.22.5-2.el7_9 extras 535 k
libmodulemd x86_64 1.6.3-1.el7 extras 141 k
librepo x86_64 1.8.1-8.el7_9 updates 82 k
libreport-filesystem x86_64 2.1.11-53.el7.centos base 41 k
libsolv x86_64 0.6.34-4.el7 base 329 k
python-enum34 noarch 1.0.4-1.el7 base 52 k
python2-dnf noarch 4.0.9.2-2.el7_9 extras 414 k
python2-hawkey x86_64 0.22.5-2.el7_9 extras 71 k
python2-libcomps x86_64 0.1.8-14.el7 extras 47 k
python2-libdnf x86_64 0.22.5-2.el7_9 extras 611 k
Transaction Summary
============================================================================================================================================================================================
Install 1 Package (+13 Dependent packages)
Total download size: 2.8 M
Installed size: 11 M
Background downloading packages, then exiting:
(1/14): deltarpm-3.6-3.el7.x86_64.rpm | 82 kB 00:00:00
(2/14): dnf-data-4.0.9.2-2.el7_9.noarch.rpm | 51 kB 00:00:00
(3/14): libcomps-0.1.8-14.el7.x86_64.rpm | 75 kB 00:00:00
(4/14): dnf-4.0.9.2-2.el7_9.noarch.rpm | 357 kB 00:00:00
(5/14): libmodulemd-1.6.3-1.el7.x86_64.rpm | 141 kB 00:00:00
(6/14): libdnf-0.22.5-2.el7_9.x86_64.rpm | 535 kB 00:00:00
(7/14): libreport-filesystem-2.1.11-53.el7.centos.x86_64.rpm | 41 kB 00:00:02
(8/14): python2-hawkey-0.22.5-2.el7_9.x86_64.rpm | 71 kB 00:00:00
(9/14): python2-libcomps-0.1.8-14.el7.x86_64.rpm | 47 kB 00:00:00
(10/14): python2-libdnf-0.22.5-2.el7_9.x86_64.rpm | 611 kB 00:00:00
(11/14): librepo-1.8.1-8.el7_9.x86_64.rpm | 82 kB 00:00:03
(12/14): python2-dnf-4.0.9.2-2.el7_9.noarch.rpm | 414 kB 00:00:01
(13/14): python-enum34-1.0.4-1.el7.noarch.rpm | 52 kB 00:00:03
(14/14): libsolv-0.6.34-4.el7.x86_64.rpm | 329 kB 00:00:08
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 306 kB/s | 2.8 MB 00:00:09
exiting because "Download Only" specified
4、查看下载内容,对下载内容进行打包。
[root@www ~]# ll /tmp/dnf/
total 2916
-rw-r--r--. 1 root root 83984 Jul 4 2014 deltarpm-3.6-3.el7.x86_64.rpm
-rw-r--r--. 1 root root 365572 Apr 9 2021 dnf-4.0.9.2-2.el7_9.noarch.rpm
-rw-r--r--. 1 root root 52316 Apr 9 2021 dnf-data-4.0.9.2-2.el7_9.noarch.rpm
-rw-r--r--. 1 root root 76620 Apr 29 2020 libcomps-0.1.8-14.el7.x86_64.rpm
-rw-r--r--. 1 root root 548248 Nov 9 2020 libdnf-0.22.5-2.el7_9.x86_64.rpm
-rw-r--r--. 1 root root 144572 Dec 1 2018 libmodulemd-1.6.3-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 83640 Nov 18 2020 librepo-1.8.1-8.el7_9.x86_64.rpm
-rw-r--r--. 1 root root 41636 Apr 4 2020 libreport-filesystem-2.1.11-53.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 336732 Aug 23 2019 libsolv-0.6.34-4.el7.x86_64.rpm
-rw-r--r--. 1 root root 424020 Apr 9 2021 python2-dnf-4.0.9.2-2.el7_9.noarch.rpm
-rw-r--r--. 1 root root 72388 Nov 9 2020 python2-hawkey-0.22.5-2.el7_9.x86_64.rpm
-rw-r--r--. 1 root root 47972 Apr 29 2020 python2-libcomps-0.1.8-14.el7.x86_64.rpm
-rw-r--r--. 1 root root 625440 Nov 9 2020 python2-libdnf-0.22.5-2.el7_9.x86_64.rpm
-rw-r--r--. 1 root root 53496 Nov 25 2015 python-enum34-1.0.4-1.el7.noarch.rpm
[root@www ~]# tar -zcf dnf.tar.gz /tmp/dnf/
tar: Removing leading `/' from member names
5、执行完如上操作,我们就可以将打包好的离线包上传至服务器了,然后进行解压安装。
[root@xxx tmp]# tar -zxvf /root/dnf.tar.gz -C /tmp/dnf/
tmp/dnf/
tmp/dnf/deltarpm-3.6-3.el7.x86_64.rpm
tmp/dnf/dnf-data-4.0.9.2-2.el7_9.noarch.rpm
tmp/dnf/libcomps-0.1.8-14.el7.x86_64.rpm
tmp/dnf/dnf-4.0.9.2-2.el7_9.noarch.rpm
tmp/dnf/libmodulemd-1.6.3-1.el7.x86_64.rpm
tmp/dnf/libdnf-0.22.5-2.el7_9.x86_64.rpm
tmp/dnf/libreport-filesystem-2.1.11-53.el7.centos.x86_64.rpm
tmp/dnf/python2-hawkey-0.22.5-2.el7_9.x86_64.rpm
tmp/dnf/python2-libcomps-0.1.8-14.el7.x86_64.rpm
tmp/dnf/python2-libdnf-0.22.5-2.el7_9.x86_64.rpm
tmp/dnf/librepo-1.8.1-8.el7_9.x86_64.rpm
tmp/dnf/python2-dnf-4.0.9.2-2.el7_9.noarch.rpm
tmp/dnf/python-enum34-1.0.4-1.el7.noarch.rpm
tmp/dnf/libsolv-0.6.34-4.el7.x86_64.rpm
[root@xxx tmp]# cd dnf/
[root@xxx dnf]# rpm -ivh *.rpm --nodeps
Preparing... ################################# [100%]
Updating / installing...
1:libmodulemd-1.6.3-1.el7 ################################# [ 7%]
2:libsolv-0.6.34-4.el7 ################################# [ 14%]
3:librepo-1.8.1-8.el7_9 ################################# [ 21%]
4:libdnf-0.22.5-2.el7_9 ################################# [ 29%]
5:python2-libdnf-0.22.5-2.el7_9 ################################# [ 36%]
6:python2-hawkey-0.22.5-2.el7_9 ################################# [ 43%]
7:python-enum34-1.0.4-1.el7 ################################# [ 50%]
8:libreport-filesystem-2.1.11-53.el################################# [ 57%]
9:dnf-data-4.0.9.2-2.el7_9 ################################# [ 64%]
10:libcomps-0.1.8-14.el7 ################################# [ 71%]
11:python2-libcomps-0.1.8-14.el7 ################################# [ 79%]
12:deltarpm-3.6-3.el7 ################################# [ 86%]
13:python2-dnf-4.0.9.2-2.el7_9 ################################# [ 93%]
14:dnf-4.0.9.2-2.el7_9 ################################# [100%]
[root@xxx dnf]#
6、此时我们就可以执行dnf命令了。
[root@xxx dnf]# dnf
usage: dnf [options] COMMAND
7、由于我们需要离线升级所以此时需要挂载所需ISO镜像,制作本地yum源。
[root@xxx dnf]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@xxx dnf]# cat /etc/yum.repos.d/local.repo
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS/
gpgcheck=0
enable=1
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream/
gpgcheck=0
enable=1
8、此时我们就可以执行如下操作进行升级
[root@xxx dnf]# dnf --allowerasing distro-sync -y
9、如果出现报错存在组件冲突,则可以执行如下操作解决冲突。
[root@xxx dnf]# rpm -e kernel sysvinit-tools gdbm kexec-tools systemd-sysv yum --nodeps
10、安装内核
[root@xxx dnf]# dnf -y install kernel
。。。
Installing:
kernel x86_64 4.18.0-193.el8 BaseOS 2.8 M
Installing dependencies:
kernel-core x86_64 4.18.0-193.el8 BaseOS 28 M
kernel-modules x86_64 4.18.0-193.el8 BaseOS 23 M
Transaction Summary
============================================================================================================================================================================================
Install 3 Packages
Total size: 54 M
Installed size: 81 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : kernel-core-4.18.0-193.el8.x86_64 1/3
Running scriptlet: kernel-core-4.18.0-193.el8.x86_64 1/3
Installing : kernel-modules-4.18.0-193.el8.x86_64 2/3
Running scriptlet: kernel-modules-4.18.0-193.el8.x86_64 2/3
Installing : kernel-4.18.0-193.el8.x86_64 3/3
Running scriptlet: kernel-core-4.18.0-193.el8.x86_64 3/3
Running scriptlet: kernel-4.18.0-193.el8.x86_64 3/3
Verifying : kernel-4.18.0-193.el8.x86_64 1/3
Verifying : kernel-core-4.18.0-193.el8.x86_64 2/3
Verifying : kernel-modules-4.18.0-193.el8.x86_64 3/3
Installed:
kernel-4.18.0-193.el8.x86_64 kernel-core-4.18.0-193.el8.x86_64 kernel-modules-4.18.0-193.el8.x86_64
Complete!
11、重启操作系统
[root@xxx dnf]# reboot
12、查看版本信息
[root@xxx ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[root@xxx ~]# uname -a
Linux xxx 4.18.0-193.el8.x86_64 #1 SMP Fri May 8 10:59:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux