在一次写脚本的时候,突然发现rhel9.4采用rocky9.4源后,openssl安装的东西经常性的报错。一开始到处去查也没有先例和解释。然后到了rocky论坛的一个帖子( https://forums.rockylinux.org/t/issue-with-openssl-fips-provider-during-migration-from-rhel-9/15290/4 )里面找到了问题。
核心问题是 openssl-fips-provider 和 openssl-libs 都提供了 /usr/lib64/ossl-modules/fips.so,至少在 openssl-libs-1:3.0.7-27 之前,Rocky 拥有/拥有一个软件包 openssl-libs,而 RHEL 构建 openssl-libs 和 openssl-fips-provider,将一些内容拆分为后者
后来,我结合了一些学过的命令,将冲突地方强制删除,换上

rpm -e --nodeps openssl-fips-provider
yum install https://shell.nuoyis.net/download/openssl-devel-3.0.7-27.el9.0.2.x86_64.rpm
yum install https://shell.nuoyis.net/download/openssl-libs-3.0.7-27.el9.0.2.x86_64.rpm

然后问题就迎刃而解了,重启也是正常进入系统。
如果重启未能成功进入系统,则可能是uefi启动方式,这里经过一段时间测试和研究,给出了以下解决源码:

if [ -d /sys/firmware/efi ] && [ -d /boot/efi/EFI/redhat ];then
    echo "你的Boot分区为EFI,正在进行特别优化"
    mv /boot/efi/EFI/redhat/ /boot/efi/EFI/rocky
    bootid=$(efibootmgr | grep BootCurrent | egrep -o "[0-9]+")
    efi_uuid=$(efibootmgr -v | grep -A 1 "Boot"$bootid  | egrep -o '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')
    efi_id=$(lsblk -o NAME,UUID,PARTUUID | grep $efi_uuid |  egrep -o '[n|v][[:alnum:]]+')
    diskname=$(echo $efi_id | sed 's/[0-9]*$//; s/p[0-9]*$//')
    efi_disknumber=$(echo $efi_id | egrep -o '[0-9]$')
    sudo efibootmgr -b $bootid -B
    sudo efibootmgr --create --disk "/dev/$diskname" --part $efi_disknumber --label "nuoyis-redhat Linux" --loader "\EFI\rocky\shimx64.efi"
    sudo grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
fi

这段代码已经加入到我的脚本判断,RHEL9用户可以直接使用并进行系统初始化:

curl -sSO https://shell.nuoyis.net/nuoyis-init.sh;bash nuoyis-init.sh
最后修改:2024 年 09 月 02 日
如果觉得我的文章对你有用,请随意赞赏