您可能會發現,當您嘗試安裝軟件包時 Linux 發現一個可怕的行,上面寫著 E:無法修復問題,包已損壞。 然後安裝將拒絕繼續進行超過此點的操作。 你可以在任何地方找到這個 Linux 使用 apt-get 管理包的發行版,其中包括 Debian 以及各種 Linux 薄荷和 Ubuntu 衍生產品。
它是由損壞的依賴關係引起的,這是安裝的軟件包依賴於其他未安裝的軟件包的副作用。 當 apt-get 去安裝某些東西時,它注意到它無法訪問它需要的東西,因此無法繼續。 一些基本的命令行技巧以及圖形工具可以快速解決所有問題。
方法 1:使用 dpkg –configure 修復損壞的軟件包
在終端工作時,我試圖運行 sudo dpkg –配置-a 啟動自動更新過程,檢查系統上是否存在因未安裝的軟件包而導致的損壞的依賴關係。 該工具應該自動安裝它認為丟失的任何軟件包,無需用戶干預,但如果提示您安裝某些內容,則必須按 y 鍵來響應提示。
如果它沒有找到任何損壞的包,那麼您不應該看到任何輸出。 我們在運行 Xubuntu 的干淨測試機器上運行此程序,因此沒有發現任何錯誤,但如果您遇到“無法修復問題,您的軟件包已損壞”問題,那麼這可能會找到您需要安裝的幾個軟件包。 。 運行後,嘗試一下 sudo apt-get安裝-f 從命令行。
該程序將遍歷並創建依賴項列表,然後讀取狀態信息。 如果您收到一條消息,顯示有“0 個更新、0 個新安裝、0 個要刪除、0 個未更新”軟件包,那麼您正在使用沒有損壞的依賴項,或者上述命令修復了所有內容。 此時你可以運行 sudo apt-clean && sudo apt-get 更新 其次是 sudo apt-get 更新 更新系統上的每個軟件包。 這可能需要一段時間,具體取決於您的系統出現這些軟件包問題的時間。
方法2:使用dist-upgrade命令
如果您收到一條消息“某些軟件包已被保留”,因此您無法成功完成上述命令,那麼您應該運行 sudo apt-get dist-upgrade 安裝其餘的這些軟件包。 除了執行常規升級的功能之外,dist-upgrade 選項還可以處理與新版本的軟件包發生變化的依賴關係。 由於 apt-get 有一個特殊的衝突系統,它通常會嘗試更新最重要的軟件包,但代價是不更新對系統不太重要的軟件包。 使用此命令甚至會強制升級。
也就是說,如果沒有檢測到損壞的軟件包,您最終會收到第三條消息,表明最近沒有安裝或更新任何內容。 如果是這種情況那麼你可以嘗試 sudo apt-get 更新 再次以便如果有任何更改,自動更新子例程可以生效。 另一方面,如果您知道所需軟件包的具體名稱,則可以手動安裝。
例如,假設您缺少 GNUStep 運行時組件,因為您想要使用語音合成。 你可以寫 sudo apt-get 安裝 gnustep-gui-runtime 安裝這個重要的軟件包。 請注意,這只是一個 example 您可以將 gnustep-gui-runtime 替換為您需要安裝的任何軟件包的名稱。 基於 apt-get 標準的現代發行版有數千個軟件包,但只要您知道要查找的軟件包的名稱,您就必須安裝它。
方法 3:使用 Synaptic 修復損壞的軟件包
如果您有 Synaptic 圖形包管理器,您還可以使用此工具修復您可能擁有的任何損壞的包。 打開程序,然後選擇編輯下拉菜單。 此菜單中應該有“修復損壞的軟件包”選項,因此如果有,請選擇它。 如果沒有太多損壞的包,運行不會花費很長時間,但它可能會遇到一些導致執行速度減慢的錯誤。
運行完所有內容後,您會注意到底部狀態行上有“成功解決依賴性問題”字樣。
您現在可以像往常一樣更新和安裝軟件包。 大多數用戶只有在已經在 Synaptic 中工作時才會這樣做,但當您需要時它就在那裡。 一旦運行,您可以關閉 Synaptic 並再次從命令提示符工作,也可以繼續在此處進行更改。
閱讀下一篇
- 如何修復損壞的登錄屏幕包 Ubuntu
- 修復:客戶端沒有所需的權限“0x80070522”
- PlayStation Showcase 將於本月晚些時候舉行; 據傳言
- E3 2023 將於 6 月 13 日開始現場舉辦