如何修复需要在 Fedora 23 上卸载 dnf 的损坏的依赖项?

如何修复需要在 Fedora 23 上卸载 dnf 的损坏的依赖项?

我最近从 Fedora 21 升级到 Fedora 23。除了涉及dnf.

升级后,执行 adnf upgrade给我这个:

Skipping packages with broken dependencies:
 sqlite                      x86_64                      3.11.0-1.fc23                       updates                      484 k

Anrpm -qa | grep sqlite通知我当前正在安装另一个版本的 sqlite:

sqlite-3.10.2-1.fc23.x86_64

现在,我想我可以通过使用来快速解决这个问题dnf upgrade --best --allowerasing。不幸的是,这一次不起作用,因为已经安装了先前的版本:

Error: cannot install both sqlite-3.11.0-1.fc23.x86_64 and sqlite-3.10.2-1.fc23.x86_64

我想我可以简单地卸载 sqlite 包,删除依赖包,安装较新版本的 sqlite,然后安装依赖包。这显然需要一些时间,但我已经习惯这样做了。如果您愿意,可以手动解决依赖关系。

然而,dnf remove sqlite给了我这个:

Error: The operation would result in removing the following protected packages: systemd, dnf.

那么,从现在开始我该如何走呢?我显然无法卸载dnf,或者systemd类似的。有没有办法可以强制升级依赖于其他被阻止的包的包?

答案1

sqlite 的具体问题是一个暂时性问题,由于错误的更新导致其进入存储库。 (在几位测试人员已经批准后,负面的 QA 反馈来得太晚了。)测试中的更新这应该可以解决问题。

这应该可以解决您眼前的问题;我不确定您是否需要更一般的答案 - 不幸的是,我认为一般的答案通常是“好吧,你不能,真的......当更新存储库处于不连贯的状态时,没有什么可以做的”做完了。”如果你真的如果想要深入研究它(例如,如果存在严重的安全问题),您可以绕过 DNF 并直接使用 rpm(至少在问题依赖于 RPM 本身之前)。

相关内容