[Bug] PackageKit 软件包依赖冲突,导致 dnf update 失败

【问题描述】
在执行 sudo dnf update 时,系统报错,提示 PackageKit-devel 存在版本冲突,无法完成更新。

【环境信息】

  • 操作系统: openEuler 24.03 LTS SP3

  • 软件包: PackageKit, PackageKit-devel, PackageKit-gtk3-module

【复现步骤】

  1. 系统处于 PackageKit-1.2.8-6.oe2403sp3 版本。

  2. 执行 sudo dnf update 命令。

【错误日志】

1Error:
2 Problem: 无法为软件包安装最佳更新候选 PackageKit-devel-1.2.8-6.oe2403sp3.x86_64
3  - cannot install both PackageKit-devel-1.2.8-3.oe2403sp3.x86_64 from everything and PackageKit-devel-1.2.8-6.oe2403sp3.x86_64 from @System
4  - 安装的软件包的问题 PackageKit-gtk3-module-1.2.8-6.oe2403sp3.x86_64

【临时解决方案】
经过排查,发现可以通过先将 PackageKit 相关软件包降级到 1.2.8-3 版本,再执行更新来绕过此问题。

1# 临时解决方法
2sudo dnf downgrade PackageKit PackageKit-devel PackageKit-gtk3-module -y
3sudo dnf update -y

这表明从 1.2.8-3 版本升级到 1.2.8-6 版本的路径是通畅的,但直接从其他中间版本(如 1.2.8-5)升级会触发依赖冲突。怀疑是软件仓库的依赖关系配置存在问题。

这个包在 1.2.8-4 版本做了合并和拆包,应该是这个问题引起的

* Tue Jul 29 2025 Funda Wang <fundawang@yeah.net> - 1.2.8-4
- move dbus interface to main package
- split out gtk module from devel sub package
- cleanup buildrequires

之前其他包也有过类似的案例,例如: samba-client 与 samba-client-libs同时安装会导致yum update 报错 · Issue #I8DD22 · src-openEuler/samba - Gitee.com

下次更新可以解决一下这个问题吗?

如果之前没有装过,就会直接安装 1.2.8-6 的最新版本,没有问题
如果之前装过低版本,那就要按你上面的操作规避一下,升级到 1.2.8-6 版本,之后再升级就是基于拆过的包了,不会有问题

注意到24.03 (LTS-SP3)在安装cockpit后也会遇到同样的问题,并且尝试一楼的临时解决方法后发现问题仍然存在

更新:packagekit升级到1.2.8.6后cockpit内的“软件更新”功能出现异常,目前只能用dnf versionlock锁定在1.2.8.3

~]$ dnf list --installed cockpit
Installed Packages
cockpit.x86_64 309-8.oe2403sp3 @update