AlmaLinux 9、Rocky Linux 9 升级到 10 版本

注:本文原在2025年6月24日发表于笔者的个人博客《IT人的工作生活》,原文 链接 :https://www.cntse.com/3293.html,如需转载,请私信笔者,征得笔者同意后,方可转载,并且需要保留本段文字。

一、前提:

1、由于AlmaLinux 、Rocky Linux 均不提供官方的升级指引,本文提到的升级过程中存在着一定风险,需要注意以下事项:

  • 备份好系统、各类数据和文件,如果出现意外情况导致数据丢失或系统异常,需要紧急恢复的,可以使用备份的数据进行还原;
  • 建议建立测试环境,多次测试,确保稳定可靠并形成有效的方案后,方可部署到生产环境中;

2、以下测试均使用root账户。

二、升级过程:

1、安装 epel(如果之前没有安装过的话):

dnf -y install epel-release

2、更新系统:

dnf -y update

3、更新系统后,如果涉及到更新内核的,需要执行“reboot”重新启动系统:

4、安装 yum-utils 、rpmconf:

dnf -y install yum-utils rpmconf

5、执行命令“rpmconf -a”,以处理可能存在的旧的 rpm 软件包配置文件,如果系统出现提示需要选择一些选项的,选择“Y”,然后回车(可能需要选择很多次);

6、执行以下命令安装新版 almalinux-release 包(AlmaLinux)或 rocky-release 包(Rocky Linux):

AlmaLinux:

rpm -e --nodeps `rpm -qa|grep almalinux` rpm -ivh --nodeps --force https://mirrors.aliyun.com/almalinux/almalinux-gpg-keys-latest-10.x86_64.rpm rpm -ivh --nodeps --force https://mirrors.aliyun.com/almalinux/almalinux-release-latest-10.x86_64.rpm rpm -ivh --nodeps --force https://mirrors.aliyun.com/almalinux/almalinux-repos-latest-10.x86_64.rpm dnf clean all

Rocky Linux:

rpm -e --nodeps `rpm -qa|grep rocky` rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/10/BaseOS/x86_64/os/Packages/r/rocky-gpg-keys-10.0-1.6.el10.noarch.rpm rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/10/BaseOS/x86_64/os/Packages/r/rocky-release-10.0-1.6.el10.noarch.rpm rpm -ivh --nodeps --force https://mirrors.aliyun.com/rockylinux/10/BaseOS/x86_64/os/Packages/r/rocky-repos-10.0-1.6.el10.noarch.rpm dnf clean all

7、执行上除操作过程中可能会出现一些文件丢失的提示,需要记录文件名,然后到其它同版本的系统中搜索同名文件,搜索到后记录文件路径,并把文件复制到正在执行升级的计算机中;如果有对系统进行备份,可以从备份文件中获取和还原;

8、在 Rocky Linux 下,如果启用了 Rocky-SIG 仓库,建议暂时禁用;

9、执行以下命令升级到 AlmaLinux 10 / Rocky Linux 10:

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

10、重建 rpm 数据库:

rpm --rebuilddb

如果出现提示“could not delete old database at /usr/lib/sysimage/rpmold.91419”之类提示的,可以直接执行“rm -rf /usr/lib/sysimage/rpmold.91419”强制删除;如果出现“Signature not supported. Hash algorithm SHA1 not available.”提示的,就执行:

update-crypto-policies --set DEFAULT:SHA1

11、卸载 AlmaLinux 9 / Rocky Linux 9 的内核:

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

12、建议执行以下命令安装内核,以防止之前升级的时候无法安装内核导致开机失败:

dnf -y install kernel kernel-core shim

13、安装新版 AlmaLinux / Rocky Linux 的基础环境:

rm -rf /etc/yum dnf -y groupinstall "Minimal Install"

14、卸载旧版的 epel ,然后安装新版本的 epel、rpmconf 和 yum-utils :

dnf -y remove epel-release dnf -y install epel-release dnf -y install rpmconf yum-utils

15、执行“rpmconf -a”以处理旧的 rpm 软件包配置文件,如果系统出现提示需要选择一些选项的,选择“Y”,然后回车(跟上面一样);

16、执行“dnf -y update –allowerasing”更新系统剩下的软件包到 el10 版本,更新之后一般会自动清理 el9 版本,如果提示如“无法为软件包安装最佳更新候选libheif-devel-1.16.1-2.el9.x86_64”之类的,可以先卸载对应的软件包(如“dnf -y remove libheif-devel” ),执行 “dnf -y update –allowerasing”后,等后续重启计算机后再重新安装对应的软件包;

17、在执行更新过程中如果出现“没有东西提供module(platform:el9)”之类提示的,可以参考下面这篇文章进行处理:《CentOS / Rocky Linux 提示“没有东西提供 module(platform:el8)”的解决方法一例》;

18、执行reboot命令重启系统;

19、在GUI下登录系统,显示AlmaLinux / Rocky Linux已经更新到10版本,内核也显示已经是6.12:

升级后的 AlmaLinux 10

升级后的 Rocky Linux 10

20、在之前的更新过程中可能会把 Rocky Linux 的默认壁纸给删除,可以执行“dnf -y install rocky-backgrounds”重新安装(笔者在测试AlmaLinux的时候未出现过这种情况);

21、笔者测试的 Rocky Linux,原来已经配置过宝塔面板+MariaDB+Nginx+PHP+可道云系统,在系统升级成功后,PHP 8.4 无法运行,但其他软件可以正常启动,而其他各类软件仓库也可能需要重新配置,此外,也需要检查之前已安装的其他各类软件是否可以正常运行,如果无法运行的,可能需要重新安装、编译,以及重新进行配置。具体过程这里就不再详述了。