Linux系列(二):centos7.6升级到rocky8.8


有些云购买服务器的时候,没有rocky镜像。比如:轻量服务器。这个时候需要先购买centOS7.6升级到centOS7.9,然后升级到rocky8.8。

但一般都是买一步到位的rocky,很少买centOS升级到rocky,做个底层了解游戏一下。

初始安装镜像为CentOS7.6 64位版本

# 查看当前版本信息 基础版本为CentOS7.6 64位版本
uname -r
3.10.0-1160.88.1.el7.x86_64

uname -a
Linux VM-0-11-centos 3.10.0-1160.88.1.el7.x86_64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

cat /proc/version
Linux version 3.10.0-1160.88.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Tue Mar 7 15:41:52 UTC 2023

安装epel仓库

yum -y install epel-release
已安装:
epel-release.noarch 0:7-14

升级到CentOS7.6最新版本centOS7.9,并且重启,重启后即运行centOS7.9

#升级到CentOS最新版本
yum -y update 
# 升级成功后重启服务器
reboot

安装依赖

# 安装rpmconf和yum-utils
yum -y install rpmconf yum-utils

# 执行rpmconf,输入Y和回车继续,我这边是按了2次即可
rpmconf -a

# 安装dnf,DNF是yum下一代的包依赖管理
yum -y install dnf

# 移除yum和yum-metadata-parser
dnf -y remove yum yum-metadata-parser

安装RockyLinux8.8的源和升级epel源

# 删除CentOS7的源
rpm -e --nodeps `rpm -qa|grep centos-`

# 安装RockyLinux8.8的源
rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/8/BaseOS/x86_64/os/Packages/r/rocky-release-8.8-1.8.el8.noarch.rpm
rpm -ivh --nodeps  --force https://mirrors.aliyun.com/rockylinux/8/BaseOS/x86_64/os/Packages/r/rocky-repos-8.8-1.8.el8.noarch.rpm
rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/8/BaseOS/x86_64/os/Packages/r/rocky-gpg-keys-8.8-1.8.el8.noarch.rpm


# 升级epel源
dnf -y upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf clean all

卸载centos7的内核

rpm -e --nodeps `rpm -qa|grep -i kernel`

修改python2编码

# 修改python2编码
vi /usr/lib/python2.7/site-packages/sitecustomize.py

#把下面这段代码加入文件里面

import sys
reload(sys)
sys.setdefaultencoding('utf8')

升级到RockyLinux8,这一步一般会报错

第一次升级报错:运行事务检查

dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync

运行事务检查
错误:事务检查与依赖解决错误:
(gcc >= 8 with gcc < 9) 被 annobin-10.94-1.el8.x86_64 需要
rpmlib(RichDependencies) <= 4.12.0-1 被 annobin-10.94-1.el8.x86_64 需要
(NetworkManager >= 1.20 or dhclient) 被 dracut-network-049-223.git20230119.el8.x86_64 需要
rpmlib(RichDependencies) <= 4.12.0-1 被 dracut-network-049-223.git20230119.el8.x86_64 需要
(annobin if gcc) 被 redhat-rpm-config-131-1.el8.noarch 需要
(gcc-plugin-annobin if gcc) 被 redhat-rpm-config-131-1.el8.noarch 需要
rpmlib(RichDependencies) <= 4.12.0-1 被 redhat-rpm-config-131-1.el8.noarch 需要
要诊断问题,尝试运行:'rpm -Va --nofiles --nodigest' 。
RPM 数据库可能出错,请尝试运行'rpm --rebuilddb'进行恢复。
下载的软件包保存在缓存中,直到下次成功执行事务。
您可以通过执行 'dnf clean packages' 删除软件包缓存。

解决办法:手动安装依赖包
find /var/cache/dnf/ -name *annobin*
/var/cache/dnf/appstream-62ae9a0bbea44fbe/packages/annobin-10.94-1.el8.x86_64.rpm
rpm -ivh --nodeps --force  /var/cache/dnf/appstream-62ae9a0bbea44fbe/packages/annobin-10.94-1.el8.x86_64.rpm 

find /var/cache/dnf/ -name *dracut-network*
/var/cache/dnf/baseos-3e608afeebc9a90b/packages/dracut-network-049-223.git20230119.el8.x86_64.rpm
rpm -ivh --nodeps --force  /var/cache/dnf/baseos-3e608afeebc9a90b/packages/dracut-network-049-223.git20230119.el8.x86_64.rpm

find /var/cache/dnf/ -name *redhat-rpm-config*
/var/cache/dnf/appstream-62ae9a0bbea44fbe/packages/redhat-rpm-config-131-1.el8.noarch.rpm
rpm -ivh --nodeps --force  /var/cache/dnf/appstream-62ae9a0bbea44fbe/packages/redhat-rpm-config-131-1.el8.noarch.rpm

第二次升级报错:运行事务测试

dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync

运行事务测试
下载的软件包保存在缓存中,直到下次成功执行事务。
您可以通过执行 'dnf clean packages' 删除软件包缓存。
错误:事务检查错误:
  file /usr/sbin/pidof from install of procps-ng-3.3.15-13.el8.x86_64 conflicts with file from package sysvinit-tools-2.88-14.dsf.el7.x86_64
  file /usr/bin/last from install of util-linux-2.32.1-42.el8_8.x86_64 conflicts with file from package sysvinit-tools-2.88-14.dsf.el7.x86_64
  file /usr/bin/mesg from install of util-linux-2.32.1-42.el8_8.x86_64 conflicts with file from package sysvinit-tools-2.88-14.dsf.el7.x86_64
  file /usr/bin/wall from install of util-linux-2.32.1-42.el8_8.x86_64 conflicts with file from package sysvinit-tools-2.88-14.dsf.el7.x86_64
  file /usr/share/man/man1/last.1.gz from install of util-linux-2.32.1-42.el8_8.x86_64 conflicts with file from package sysvinit-tools-2.88-14.dsf.el7.x86_64
  file /usr/share/man/man1/mesg.1.gz from install of util-linux-2.32.1-42.el8_8.x86_64 conflicts with file from package sysvinit-tools-2.88-14.dsf.el7.x86_64
  file /usr/share/man/man1/wall.1.gz from install of util-linux-2.32.1-42.el8_8.x86_64 conflicts with file from package sysvinit-tools-2.88-14.dsf.el7.x86_64

错误汇总
-------------

解决办法:删除sysvinit-tools-2.88-14.dsf.el7.x86_64
rpm -e --nodeps sysvinit-tools-2.88-14.dsf.el7.x86_64

第三次安装:直接成功

dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync

卸载重新安装epel仓库和rpmconf并删除冲突软件包

# 卸载旧的epel仓库,重新安装epel仓库,删除冲突软件包,重装rpmconf并执行rpmconf,在交互界面一直输入Y和回车即可
# 卸载epel仓库文件
cd /etc/yum.repos.d
rm -rf /etc/yum.repos.d/CentOS-Base.repo.rpmsave  /etc/yum.repos.d/CentOS-Epel.repo /etc/yum.repos.d/epel-modular.repo /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing-modular.repo /etc/yum.repos.d/epel-testing.repo

# 重新安装epel仓库
dnf -y reinstall epel-release

# 删除冲突的软件包
rpm -e --nodeps python36-rpmconf-1.1.7-1.el7.1.noarch

# 重装rpmconf
dnf -y install rpmconf yum-utils

#执行rpmconf,会出现如下界面,一直输入Y和回车即可
rpmconf -a

安装Rocky8.8内核

# 安装内核(防止有些时候没安装内核开机失败,开机失败的可以用RockyLinux-8 ISO镜像救援模式安装内核)
dnf -y install kernel kernel-core
dnf -y install shim grub2-tools-extra grubby grub2-common grub2-pc
dnf -y install grub2-tools-efi grub2-tools-minimal grub2-efi grub2-pc-modules grub2-tools

修复引导并安装Rocky8.8的Minimal Install环境

# 执行下面的命令,防止迁移完成后找不到引导,重启开不了机,根据以下命令选择分区表类型,根据分区表类型执行相关命令

# 查看分区表类型
fdisk -l

# MBR分区(传统的BIOS、dos、msdos)(注意/dev/vda需根据实际情况自行选择磁盘路径,具体参考fdisk -l返回的磁盘卷标信息)

grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/vda

安装Rocky8.8的环境,”Minimal Install”和”Server with GUI”二选一

# 这一步选择性执行,执行这一步能解决安装yum报错。
rm -rf /etc/yum

# 安装基础环境,二选一
dnf -y groupinstall "Minimal Install"

#或者安装桌面环境,二选一
dnf -y groupinstall "Server with GUI"

# 重启机器
reboot

安装版本查看软件

 dnf install redhat-lsb

lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: Rocky
Description:    Rocky Linux release 8.8 (Green Obsidian)
Release:        8.8
Codename:       GreenObsidian

执行dnf update 报错

dnf update
上次元数据过期检查:0:21:05 前,执行于 2023年09月20日 星期三 13时32分06秒。
错误:
 问题: 无法同时安装 libtomcrypt-1.18.2-5.el8.x86_64 和 libtomcrypt-1.17-26.el7.x86_64
  - 软件包 python2-crypto-2.6.1-16.el7.x86_64 需要 libtomcrypt.so.0()(64bit),但没有提供者可以被安装
  - 无法为软件包安装最佳更新候选 libtomcrypt-1.17-26.el7.x86_64
  - 安装的软件包的问题 python2-crypto-2.6.1-16.el7.x86_64
(尝试在命令行中添加 '--allowerasing' 来替换冲突的软件包 或 '--skip-broken' 来跳过无法安装的软件包 或 '--nobest' 来不只使用软件包的最佳候选)

解决办法
dnf update --allowerasing

参考文章:从CentOS7.6升级到Rocky9.1镜像制作总结

Views: 609


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注