Centos7升级rockyLinux8踩过的坑
2024.6.30 CentOS 正式步入了 EOL 阶段,很遗憾,本站的服务器正好跑在一台 CentOS7.10 的服务器上,所以需要进行升级 / 迁移了。
本次采用的系统是 RockyLinux8,使用 elevate 作为系统升级工具,相关教程可以自行去其他平台搜索,这里只记录我个人踩过的坑。
在升级系统开始前,如果你是云服务器用户,那么一定要提前做好 镜像 ,这是必须的,防止升级到一半的时候升级出现事故导致你无法进入服务器(本人靠镜像恢复了 3 次,均为同一个问题)
- 升级系统准备阶段 (leapp preupgrade 和 leapp upgrade)
在这一阶段,基本上没有什么太大的问题,根据/var/log/leapp/leapp-report.txt
文件和UPGRADE INHIBITED
给出的信息和命令,结合搜索引擎即可成功解决。
本人这一阶段遇到的问题如下:
Multiple devel kernels installed
根据 leapp-report.txt 文件给出的命令解决,版本号可能有问题,记得留意下自己系统的版本号A YUM/DNF repository defined multiple times
查看 leapp-report.txt 给出的提示,本人这边是Epel
源重复了,去/etc/yum.repos.d/
找到并删除重复的那一个即可Missing required answers in the answer file
使用 leapp-report.txt 给出的命令leapp answer --section remove_pam_pkcs11_module_check.confirm=True
解决At least *MB more space needed on the / filesystem.
磁盘空间不够,清理出 / 扩容需求的空间即可解决Failed to create directory /var/lib/leapp/el8userspace//sys/fs/selinux: Read-only file system
包含这段文本的错误,一般来说是包安装失败了,我这边是参考 almalinux 论坛 的解决方法进行解决的: 通过卸载提示最后一行的包来进行解决的,然后等系统安装完成后新系统重新安装解决,本人遇到的有问题的包分别是:brotli brotli-devel cmake javapackages-tools
- 系统升级阶段 (执行 leapp upgrade 之后 reboot)
在这阶段推荐通过云服务商的 novnc 等工具进行观察,如果在这个过程失败了,推荐直接还原系统镜像然后根据问题在leapp upgrade
之前就先进行解决。
本人这一阶段遇到的问题如下:
ImportError: /lib64/libk5crypto.so.3: undefined symbol
根据 microsoft learn 的文档,可以得知是 Openssl 的问题,去/etc/ld.so.conf.d/
目录下找到 openssl 1.1.1 相关的文件,给进行改名mv zopenssl111.conf zopenssl111.conf.bak
然后执行 ldconfig 后即可解决 (也是这一个问题导致还原了 3 次)
- 系统完成升级阶段
在这一阶段,系统已经完成了升级,但是你进入系统后可能会遇到一些问题,每个人的问题可能不同。
本人这一阶段遇到的问题如下:
- Cloud_init 服务炸了 (我没管)
在第一阶段卸载的 brotli 安装不上,原因是 el7 的 libbrotli,我的解决方法如下:
# 找一个临时目录下载brotli dnf download brotli # 强制安装brotli rpm -Uvh --force brotli-1.0.6-3.el8.x86_64.rpm #卸载掉libbrotli dnf remove libbrotli # 再次使用rpm重新安装brotli rpm -Uvh brotli-1.0.6-3.el8.x86_64.rpm
perl 出现
perl: symbol lookup error: /usr/local/lib64/perl5/auto/version/vxs/vxs.so: undefined symbol: Perl_xs_apiversion_bootcheck
异常,我的解决方法如下# 先删除perl-version dnf remove perl-version # 再去删除那个目录 rm -rf /usr/local/lib64/perl5/auto/version/vxs/ # 最后重新安装 dnf install perl-version
- 部分之前编译安装的应用出现类似
while loading shared libraries: libgd.so.2: cannot open shared object file: No such file or directory
之类的错误,解决方法就是重新编译安装那个应用即可解决 - 部分 Python 应用出现依赖丢失,pip install 重新安装解决
- 后续的其他处理
先参考Migrating from CentOS 7 to Rocky Linux 8: A Step-by-Step Guide 这篇文章的 Step 4 部分,去删除剩余下来的 el7 的包,其中需要修改的文件路径为/etc/dnf/dnf.conf
,其余完全参考文章即可
本文链接:https://woms.top/archives/137.html
This blog is under a CC BY-NC-SA 4.0 Unported License