Centos Stream 8升级后的dnf源同步bug

4.7
(6)

前几天,我把Centos 8.2升级到了Centos Stream 8系统,毕竟2021年底centos 8就会停止维护更新。更新到Centos Stream 8以后,我发现在使用 dnf distro-sync 这个命令来同步更新dnf仓库时,一直报错,导致无法同步。昨天晚上,我终于解决了这个bug。

而我在使用 dnf distro-sync 命令时,总是提示 libvpx-1.7.0-8.e1.x86_64 安装包以及 oniguruma-6.8.2-2.e18.x86_64 安装包有问题,而当我执行 dnf install libvpx-1.7.0-8.e1.x86_64 以及 dnf install oniguruma-6.8.2-2.e18.x86_64 命令来安装这两包时,提示已经安装过,不需再次安装。

Centos Stream 8升级后的dnf源同步bug

就在这时,我突然想起来dnf命令还有个dnf update,也可以更新dnf,跟同步命令,结果是一致的。就在我运行dnf update命令时,终于看到了不同的结果。结果显示:

Problem 1: cannot install both libvpx-1.7.0-8.e1.x86_64 and libvpx-1.7.0-6.e1.x86_64
 - package libvpx-devel-1.7.0-6.e1.x86_64 requires libvpx(x86-64) = 1.7.0-6.e18, but none of the providers can talled
 - cannot install the best update candidate for package libvpx-1.7.0-6.e1.x86_64
 - problem with installed package libvpx-1.7.0-6.e1.x86_64
Problem 2: cannot install both oniguruma-6.8.2-2.e18.x86_64 and oniguruma-6.8.2-1.e18.x86_64
 - package oniguruma-6.8.2-1.e18.x86_64 requires oniguruma = 6.8.2-1.e18, but none of the providers can talled
 - cannot install the best update candidate for package oniguruma-6.8.2-1.e18.x86_64
 - problem with installed package oniguruma-6.8.2-1.e18.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstall packages or '--nobest' to use not only best candidate packages)
Centos Stream 8升级后的dnf源同步bug

很明显,我终于找到了问题的关键,那就是我同时安装过 libvpx-1.7.0-8.e1.x86_64 以及 libvpx-1.7.0-6.e1.x86_64 两个不同版本的包,oniguruma-6.8.2-2.e18.x86_64 以及 oniguruma-6.8.2-1.e18.x86_64 两个不同版本的包。

这时,我直接把低版本的两个包移除,使用的命令如下:

dnf remove libvpx-1.7.0-6.e1.x86_64
dnf remove oniguruma-6.8.2-1.e18.x86_64

当我运行完第一行命令,再次执行dnf update,果然不再报关于libvpx包的错误了。两行命令执行完毕,就解决了这个bug。

这时,我们运行 dnf update 以及 dnf distro-sync,都可以正常更新了。这里,两个命令是一致的,不过推荐使用如下命令:

dnf distro-sync

当我们更新完系统后,再次运行 dnf distro-sync ,就会提示已经无需更新了。

Centos Stream 8升级后的dnf源同步bug

而就在我完成Centos Stream 8系统的完美升级后,重启系统,发现apache服务器无法启动了。然后,我是用如下命令,查看具体报错信息:

systemctl status httpd

提示httpd.conf文件第193行报错,访问文件,发现是php问题。接着,我运行 php-v,果然php已经无法运行了。我感觉这是我卸载那两个包导致的错误。然后我试着更新php。

Centos Stream 8升级后的dnf源同步bug

果然更新过程中,又出现 libvpx-devel 以及 oniguruma-devel 两个包。而这两个包,在我卸载低版本libvpx以及低版本oniguruma时,已经一起移除了。这也是导致bug的关键所在。

Centos Stream 8升级后的dnf源同步bug

而在我更新完php后,发现php直接消失不见了,可能是环境变量出了问题。此时,我直接移除了lamp全部环境,重新安装lamp一键包环境。历经半小时有余,总算安装完毕。

数据备份,只有1月10号的,好在搜索引擎已经收录了我这两天的文章,很轻松的就恢复了网站数据。

环境重新部署完成后,再次运行 dnf distro-sync 以及 dnf update,发现没有报错。重启多此,都没有任何报错,而且网站运行也正常。

到此,可以说我完美的升级到了 Centos Stream 8 系统。

结尾彩蛋:

  • 我之前升级的5.9内核,在更新完系统后,自动变成了4.18内核。
    • 我最初的内核是4.18.0-193
    • 之前把内核升级到了5.9.3-1
    • 升级完Centos Stream 8,内核变成4.18.0-259
  • ssl证书无法自动部署,随使用freessl设置了证书
  • 自己部署的ssl证书,缺失证书链,后来发现还要设置证书链:
    • SSLCertificateFile /*/exp.com.crt
    • SSLCertificateKeyFile /*/exp.com_key.key
    • SSLCertificateChainFile /*/ca_bundle.crt

上面的ca_bundle就是证书链。以上关于证书的详细设置,只是举例,并非本站真实证书地址。

SSLCertificateFile用于设置网站证书目录,SSLCertificateKeyFile用于设置网站密钥,SSLCertificateChainFile用于设置CA证书链。

虽然,折腾了几个小时,但最后问题解决了,心情还是很好的。

最后的最后,给各位附上我的Centos Stream 8升级教程:https://iymark.com/computer/centos-8-upgrade-stream.html,希望各位升级遇不到bug吧

顺便,再附上我在这篇bug问题解决后,再次遇到的Centos Stream 8系统的bug:https://iymark.com/questions/1427.html

好在,最终我真的彻底解决了所有的bug。

共计6人评分,平均4.7

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/computer/centos-fixbug-update.html

发表评论

登录后才能评论

评论列表(2条)

    本站APP
    本站APP
    分享本页
    返回顶部