前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从CentOS7.6升级到Rocky9.1镜像制作总结

从CentOS7.6升级到Rocky9.1镜像制作总结

原创
作者头像
用户4303685
修改2023-07-17 16:00:00
2.5K0
修改2023-07-17 16:00:00
举报

1. 镜像基础版本 腾讯云轻量服务器 CentOS7.6镜像

2. 镜像制作过程

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

代码语言:shell
复制
## 001、查看当前版本信息 基础版本为CentOS7.6 64位版本
uname -r
# 3.10.0-1160.71.1.el7.x86_64

uname -a
# Linux VM-4-3-centos 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

cat /proc/version
# Linux version 3.10.0-1160.71.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 Jun 28 15:37:28 UTC 2022

2.2 安装epel仓库

代码语言:shell
复制
#wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.tar
# 安装epel仓库
yum -y install epel-release
#Installed:
#  epel-release.noarch 0:7-14
#
#Complete!

2.3 修改shell界面终端语言为中文简体

代码语言:shell
复制
locale -a
yum groupinstall "fonts"
localectl set-locale LANG=zh_CN.UTF-8
# 此时退出终端,然后重新进入终端界面语言才为中文

2.4 升级到CentOS最新版本,然后重启服务器

代码语言:shell
复制
#升级到CentOS最新版本
yum -y update 
# 升级成功后重启服务器
reboot
# 重启成功后版本应该就升级到CentOS7.9了

2.5 安装一些依赖项目

代码语言:shell
复制
## 安装rpmconf和yum-utils
yum -y install rpmconf yum-utils

## 执行rpmconf ,如果出现一些提示,请输入Y和回车继续,如果没提示继续第四步操作
rpmconf -a

## 安装dnf
yum -y install dnf

## 移除yum和yum-metadata-parser

dnf -y remove yum yum-metadata-parser

2.6 安装RockyLinux8.7的源和升级epel源

代码语言:shell
复制
# 删除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

#rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/8/BaseOS/x86_64/os/Packages/r/rocky-release-8.7-1.2.el8.noarch.rpm
#rpm -ivh --nodeps  --force https://mirrors.aliyun.com/rockylinux/8/BaseOS/x86_64/os/Packages/r/rocky-repos-8.7-1.2.el8.noarch.rpm
#rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/8/BaseOS/x86_64/os/Packages/r/rocky-gpg-keys-8.7-1.2.el8.noarch.rpm

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

2.7 卸载centos7的内核及修改python编码

代码语言:shell
复制
## 卸载centos7的内核及修改python编码
rpm -e --nodeps `rpm -qa|grep -i kernel`

修改python2编码

代码语言:shell
复制
## 修改python2编码
vi /usr/lib/python2.7/site-packages/sitecustomize.py

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

代码语言:shell
复制
# encoding=utf8

import sys

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

# encoding=utf8  import sys    reload(sys)  sys.setdefaultencoding('utf8')

2.8 升级到RockyLinux8,这一步一般会报错,如果没有报错请进行继续执行2.9步操作

2.8.1 第1次尝试升级RockyLinux8报错解决方法

代码语言:shell
复制
## 第一次执行下面的语句:
dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync

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

##解决办法
#首先执行下面的语句模糊查询缓存包存放路径
find /var/cache/dnf/ -name *annobin-10.67-3.el8.x86_64*
# /var/cache/dnf/appstream-62ae9a0bbea44fbe/packages/annobin-10.67-3.el8.x86_64.rpm

find /var/cache/dnf/ -name *dracut-network-049-218.git20221019.el8_7.x86_64*
# /var/cache/dnf/baseos-3e608afeebc9a90b/packages/dracut-network-049-218.git20221019.el8_7.x86_64.rpm

find /var/cache/dnf/ -name *redhat-rpm-config-130-1.el8.noarch*
# /var/cache/dnf/appstream-62ae9a0bbea44fbe/packages/redhat-rpm-config-130-1.el8.noarch.rpm

#然后rpm -ivh --nodeps --force 后面跟刚刚查询到的rpm文件完整路径卸载掉冲突的包
rpm -ivh --nodeps --force /var/cache/dnf/appstream-62ae9a0bbea44fbe/packages/annobin-10.67-3.el8.x86_64.rpm
rpm -ivh --nodeps --force /var/cache/dnf/baseos-3e608afeebc9a90b/packages/dracut-network-049-218.git20221019.el8_7.x86_64.rpm
rpm -ivh --nodeps --force /var/cache/dnf/appstream-62ae9a0bbea44fbe/packages/redhat-rpm-config-130-1.el8.noarch.rpm

2.8.2 第2次尝试升级RockyLinux8报错解决方法

代码语言:shell
复制
## 第二次尝试升级
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-9.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-39.el8_7.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-39.el8_7.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-39.el8_7.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-39.el8_7.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-39.el8_7.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-39.el8_7.x86_64 conflicts with file from package sysvinit-tools-2.88-14.dsf.el7.x86_64

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

## 解决方法 删除掉rpm -e --nodeps sysvinit-tools-2.88-14.dsf.el7.x86_64包
rpm -e --nodeps sysvinit-tools-2.88-14.dsf.el7.x86_64

2.8.3 第3次尝试升级RockyLinux8报错解决方法

代码语言:shell
复制
## 013、第三次尝试升级
dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync
## 此次升级成功无报错信息

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

卸载旧的epel仓库,重新安装epel仓库,删除冲突软件包,重装rpmconf并执行rpmconf,在交互界面一直输入Y和回车即可

代码语言:shell
复制
## 014、卸载旧的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

2.10 安装RockyLinux-8内核

安装内核(防止有些时候没安装内核开机失败,开机失败的可以用RockyLinux-8 ISO镜像救援模式安装内核)

代码语言:shell
复制
## 014、安装内核(防止有些时候没安装内核开机失败,开机失败的可以用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

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

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

代码语言:shell
复制
## 015、执行下面的命令,防止迁移完成后找不到引导,重启开不了机,根据以下命令选择分区表类型,根据分区表类型执行相关命令

# 查看分区表类型
fdisk -l

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

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

2.12 安装Rocky8.7的"Minimal Install"环境

代码语言:shell
复制
## 016、这一步选择性执行,执行这一步能解决安装yum报错。
rm -rf /etc/yum

## 017、安装基础环境
dnf -y groupinstall "Minimal Install"

## 018、重启机器
reboot

这样就将CentOS7 升级到了rockyLinux8.7


2.13 下面尝试将RockyLinux8.7升级到9.1

2.13 安装epel源并升级系统到rocky8最新版,重启服务器创建一个快照备份

代码语言:shell
复制
#安装epel源
dnf -y install epel-release
#更新系统至最新版
dnf -y update
#重启服务器
reboot

2.14 升级Rocky8.7到Rocky9.1

代码语言:shell
复制
# 安装rpmconf和yum-utils
dnf -y install rpmconf yum-utils

# 执行rpmconf ,如果出现一些提示,请输入Y和回车继续,如果没提示继续第四步操作
rpmconf -a

# 安装rocky-release包
rpm -e --nodeps `rpm -qa|grep rocky-release`
rpm -e --nodeps `rpm -qa|grep rocky-gpg-keys`
rpm -e --nodeps `rpm -qa|grep rocky-repos`

# 9.2版本
# rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/9/BaseOS/x86_64/os/Packages/r/rocky-gpg-keys-9.2-1.4.el9.noarch.rpm
# rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/9/BaseOS/x86_64/os/Packages/r/rocky-release-9.2-1.4.el9.noarch.rpm
# rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/9/BaseOS/x86_64/os/Packages/r/rocky-repos-9.2-1.4.el9.noarch.rpm
# dnf clean all

# 9.1版本
rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/9/BaseOS/x86_64/os/Packages/r/rocky-gpg-keys-9.1-1.11.el9.noarch.rpm
rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/9/BaseOS/x86_64/os/Packages/r/rocky-release-9.1-1.11.el9.noarch.rpm
rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/9/BaseOS/x86_64/os/Packages/r/rocky-repos-9.1-1.11.el9.noarch.rpm
dnf clean all

# 停用冲突的包  
dnf module disable gimp:2.8 mariadb:10.3 perl-IO-Socket-SSL:2.066 perl-libwww-perl:6.34 python27:2.7 python36:3.6 virt:rhel

2.14.1 第1次尝试升级RockyLinux-9

代码语言:shell
复制
# 第一次尝试升级RockyLinux-9
dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync

## 报错如下

# 模块依赖问题:需要停用

# 问题 1: 冲突的请求

# - 没有提供模块 module(platform:el8) 所需要的 gimp:2.8:8030020210427153901:c307c522.x86_64

# 问题 2: 冲突的请求

# - 没有提供模块 module(platform:el8) 所需要的 mariadb:10.3:8060020220913075833:d63f516d.x86_64

# 问题 3: 冲突的请求

# - 没有提供模块 module(platform:el8) 所需要的 perl-IO-Socket-SSL:2.066:8060020220513050719:bc93984d.x86_64

# - 没有提供模块 module(perl:5.26) 所需要的 perl-IO-Socket-SSL:2.066:8060020220513050719:bc93984d.x86_64

# 问题 4: 冲突的请求

# - 没有提供模块 module(platform:el8) 所需要的 perl-libwww-perl:6.34:8060020220513153220:9168a43d.x86_64

# - 没有提供模块 module(perl:5.26) 所需要的 perl-libwww-perl:6.34:8060020220513153220:9168a43d.x86_64

# 问题 5: 冲突的请求

# - 没有提供模块 module(platform:el8) 所需要的 python27:2.7:8070020221108111144:056aacbc.x86_64

# 问题 6: 冲突的请求

# - 没有提供模块 module(platform:el8) 所需要的 python36:3.6:8050020211109130820:982725ab.x86_64

# 问题 7: 冲突的请求

# - 没有提供模块 module(platform:el8) 所需要的 virt:rhel:8070020230404171803:3b9f49c4.x86_64

# 解决方法 需要在升级前停用如下冲突包
# 停用冲突的包  
dnf module disable gimp:2.8 mariadb:10.3 perl-IO-Socket-SSL:2.066 perl-libwww-perl:6.34 python27:2.7 python36:3.6 virt:rhel

2.14.2 第二次升级

代码语言:shell
复制
dnf -y --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync

# 升级成功无报错

2.15 安装rocky9内核与minimal-environment基础环境

代码语言:shell
复制
# 重建rpm数据库
rpm --rebuilddb

# 查看已安装的内核
rpm -qa|grep -i kernel

# 卸载RockyLinux-8的内核(可选操作,防止操作不当无法开机,可以在所有步骤操作完成,重启操作系统之后,再进行,卸载完成之后用第10步重新安装内核)
rpm -e --nodeps `rpm -qa|grep -i kernel`

# 安装RockyLinux-9内核(防止有些时候没安装内核开机失败,开机失败的可以用RockyLinux-9 ISO镜像救援模式安装内核)
dnf -y install kernel
dnf -y install kernel-core
dnf -y install shim

# 安装基础环境
dnf group install minimal-environment -y

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

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

# d第二次停用冲突的包
dnf module disable gimp:2.8 mariadb:10.3 perl-IO-Socket-SSL:2.066 perl-libwww-perl:6.34 python27:2.7 python36:3.6 virt:rhel

# 更新系统
dnf -y update

2.16 修复引导 并设置允许root远程登录

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

# 查看分区表类型
fdisk -l
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/vda

# 允许ssh使用root用户远程登录
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# 重启系统
reboot

2.17 开启网卡

升级到RockyLinux9.1成功,但是此时默认关闭了网卡,无法使用ssh远程登录

Rocky9默认禁止root登录,在升级完毕重启前首先需要运行echo "PermitRootLogin yes" >> /etc/ssh/sshd_config,修改ssh设置允许root账号登录

重启后

进入使用root账号/密码登录VNC界面,

Rocky9默认网卡禁用自启动,需要调整为自启动网卡

代码语言:shell
复制
# 查看DNS服务器配置信息
cat /etc/resolv.conf 

# 查看网关信息 
route -n

# 显示网卡信息
ip a

# 查看fstab信息
cat /etc/fstab 

# eth0网卡为关闭状态 需要开启 运行下面4句才开启成功
ifup eth0
nmcli connection reload 
systemctl restart NetworkManager
nmcli connection reload 

# 重启成功后查看网卡信息
ip a

# 测试是否能ping通
ping qq.com

此时可以使用ssh客户端密钥对登录rocky9服务器了

2.18 安装lnmp环境一键安装包

代码语言:shell
复制
# 查看screen是否安装
screen ls

# 创建lnmp会话
screen -S lnmp

# 查看swap文件列表 此时为空
cat /proc/swaps

# 创建4Gswap 交换空间
sudo swapon -s
sudo dd if=/dev/zero of=/var/swapfile bs=1M count=4096
sudo chmod 0600 /var/swapfile
sudo mkswap /var/swapfile
sudo swapon /var/swapfile
sudo swapon -s
cat /proc/swaps

# 查看gcc版本是否大于10
rpm -qa|grep gcc

# 安装lnmp
wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && LNMP_Auto="y" DBSelect="5" Bin="n" DB_Root_Password="yourpassworkd" InstallInnodb="y" PHPSelect="11" SelectMalloc="2" ./install.sh lnmp

2.19 至此 Rocky91自定义镜像 制作完毕

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 镜像基础版本 腾讯云轻量服务器 CentOS7.6镜像
  • 2. 镜像制作过程
  • 2.1 初始安装镜像为CentOS7.6 64位版本
  • 2.2 安装epel仓库
  • 2.3 修改shell界面终端语言为中文简体
  • 2.4 升级到CentOS最新版本,然后重启服务器
  • 2.5 安装一些依赖项目
  • 2.6 安装RockyLinux8.7的源和升级epel源
  • 2.7 卸载centos7的内核及修改python编码
  • 2.8 升级到RockyLinux8,这一步一般会报错,如果没有报错请进行继续执行2.9步操作
    • 2.8.1 第1次尝试升级RockyLinux8报错解决方法
      • 2.8.2 第2次尝试升级RockyLinux8报错解决方法
        • 2.8.3 第3次尝试升级RockyLinux8报错解决方法
        • 2.9 卸载重新安装epel仓库和rpmconf并删除冲突软件包
        • 2.10 安装RockyLinux-8内核
        • 2.11 修复引导并安装Rocky8.7的Minimal Install环境
        • 2.12 安装Rocky8.7的"Minimal Install"环境
        • 2.13 下面尝试将RockyLinux8.7升级到9.1
        • 2.13 安装epel源并升级系统到rocky8最新版,重启服务器创建一个快照备份
        • 2.14 升级Rocky8.7到Rocky9.1
          • 2.14.1 第1次尝试升级RockyLinux-9
            • 2.14.2 第二次升级
            • 2.15 安装rocky9内核与minimal-environment基础环境
            • 2.16 修复引导 并设置允许root远程登录
            • 2.17 开启网卡
            • 2.18 安装lnmp环境一键安装包
            • 2.19 至此 Rocky91自定义镜像 制作完毕
            相关产品与服务
            轻量应用服务器
            轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档