当尝试使用 更新软件包时dnf
,由于“依赖关系损坏”,某些软件包会被跳过:
$ sudo dnf update
Last metadata expiration check: 0:07:38 ago on Mon Feb 6 12:05:50 2017.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Skipping packages with broken dependencies:
... packages ...
Transaction Summary
================================================================================
Skip 8 Packages
我如何才能找到问题所在?例如,软件包x
需要的软件包y
版本z
无法找到。
Dnf版本:1.1.10
操作系统:Fedora 25
答案1
尝试sudo dnf update --best
示例输出:
Error: package vdsm-cli-4.20.0-261.gitabb73a5.fc25.noarch requires vdsm-client = 4.20.0-261.gitabb73a5.fc25, but none of the providers can be installed.
package vdsm-cli-4.20.0-261.gitabb73a5.fc25.noarch requires vdsm-python = 4.20.0-261.gitabb73a5.fc25, but none of the providers can be installed
(try to add '--allowerasing' to command line to replace conflicting packages)
从文档:
-b, --best
在交易中尝试最佳可用软件包版本。具体来说,在 dnf 升级期间,默认情况下会跳过由于依赖性原因而无法安装的更新,该开关强制 DNF 仅考虑最新的软件包。当遇到依赖性中断的软件包时,DNF 将失败并给出无法安装最新版本的原因。
答案2
我通常使用 下载有问题的 RPM,wget
然后尝试使用 手动安装dnf install PACKAGE
。这通常会给我提供关于依赖性问题的更多详细信息。