Fedora

如何修復損壞的依賴關係,需要在 Fedora 23 上解除安裝 dnf?

  • February 26, 2016

我最近從 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這樣。有沒有一種方法可以強制升級依賴於其他被阻止的包的包?

sqlite 的具體問題是一個暫時性的問題,即更新到儲存庫的錯誤。(在幾個測試人員已經批准後,負面的 QA 回饋來得太晚了。)測試中有一個更新的更新應該可以解決這個問題。

那應該可以解決您的直接問題;我不確定您是否需要更一般的答案——不幸的是,我認為一般答案通常是“嗯,你不能,真的……當更新儲存庫處於不連貫的狀態時,沒有什麼可做的做完了。” 如果您真的想深入研究它(例如,如果存在嚴重的安全問題),您可以繞過 DNF 並直接使用 rpm(至少直到問題依賴於 RPM 本身)。

引用自:https://unix.stackexchange.com/questions/265955