我keybase
安裝了 CLI,但keybase
不幸的是,該包還包含一個GUI 客戶端,它需要libadwaita、GTK 和一堆其他巨大的GUI 東西- 這會大大增加我安裝的包的數量以及WSL 使用的磁碟空間量。因此,我手動安裝了keybase
以dpkg -i
避免引入所有 GUI 依賴項,使我能夠使用 CLI,而不會造成任何臃腫。
然而,這導致apt
停止工作。當我嘗試安裝任何其他軟體包,甚至是與 完全無關的軟體包時keybase
,我收到此錯誤訊息:
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
keybase : Depends: libappindicator1 but it is not going to be installed or
libayatana-appindicator1 but it is not going to be installed
Depends: libgconf-2-4 but it is not going to be installed
Depends: libgtk-3-0 but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
我找到的唯一解決方案是暫時刪除keybase
with dpkg
,執行我的apt
命令,然後keybase
再次重新安裝。但我不喜歡這個解決方案 - 我想保留keybase
在我的系統上。有沒有辦法apt
忽略這些未滿足的依賴關係?或者,有沒有辦法在不破壞系統的情況下擁有任何未滿足的依賴關係apt
?
答案1
當系統上存在未滿足的依賴關係時,Apt 無法用於升級或安裝軟體。
- 」不能用於升級「包括安全包升級。具有未滿足相依性的系統不是接收安全性更新。因此,對於大多數使用者來說,讓系統處於這種狀態是不明智的。
對於大多數 Ubuntu 用戶,未滿足的依賴關係當他們安裝非 Ubuntu 或錯誤版本的軟體時會發生這種情況。當他們卸載那些非 Ubuntu 或錯誤版本的軟體包時,問題就解決了。
對於勇敢的高級用戶、Apt 和 dpkg 有--force
(請參閱man dpkg
)允許有限覆蓋的選項。這些是 Ubuntu 之前時代的遺產,如今很少使用……但可能正是您所尋求的。例如,--force-depends-version
:
depends-version:檢查依賴項時不關心版本。這會影響 Pre-Depends 和 Depends 欄位。
警告:強制使用時應非常小心,並且只能暫時使用,直到上游版本修復相依性問題。 Apt 和 dpkg 可能會繼續強烈地(並且正確地!)抱怨版本錯誤的軟體包。可能會出現其他副作用。
- 不要使用強制打包作為永久解決方案。它將以淚水和破碎的系統結束。如果您需要永久的非 deb 套件解決方案,請考慮從原始程式碼建置、替代應用程式和/或替代打包方法。不要對安裝了強制軟體包的系統進行版本升級,因為這些軟體包可能會導致版本升級嚴重失敗。