? ?
前幾天,我正在更新我的Ubuntu系統。我更喜歡使用apt update和apt upgrade的組合來更新系統的命令行方式。
這次我在Ubuntu中遇到了一個奇怪的更新錯誤。它告訴我,有些軟件包可以升級,但由于讀取錯誤而無法升級這些軟件包:
以下軟件包已保留:
這是我遇到的錯誤的屏幕截圖:
如上圖所示,問題是由于fwupd引起的,它是Ubuntu和其他Linux中的固件更新管理器守護程序。
讓我向您展示如何在Ubuntu和其他Linux發行版(如Linux Mint,Debian,Kali Linux等)中處理此錯誤。
解決此錯誤的方法非常簡單。您所要做的就是對問題中的一個或多個軟件包使用apt install命令:
sudo apt install package_name
如果在已經安裝的軟件包上使用apt install,它將被更新。就我而言,fwupd程序包被保留。因此,這是我嘗試的方法:
sudo apt install fwupd
正如您在下面的屏幕快照中看到的那樣,它建議將要安裝兩個軟件包,然后還要安裝這些軟件包。
上面建議的修復程序應該可以為您解決問題。但是您是否好奇導致錯誤的原因以及如何解決該錯誤?讓我向您解釋。
通常,當您運行sudo apt update和sudo apt upgrade命令時,它將所有已安裝的軟件包更新為可用的較新版本。
但是,如果已更改已安裝程序包的依賴關系,從而需要安裝新程序包,則已安裝程序包將不會隨著系統更新而升級,并且您會看到程序包保留錯誤。
在此處的示例中,最初安裝fwupd時,未安裝tpm2-tools和tpm2-abrmd,并且fwupd并不依賴于此。后來,較新版本的fwupd要求安裝這些新軟件包。
這是Debian的APT軟件包管理器中的一種機制,它通知您現在已經安裝的軟件包需要安裝更多新的軟件包作為依賴項。當您手動和單獨更新這些軟件包時,您會看到要安裝哪些新軟件包,并且不再顯示該錯誤。
在這種情況下,您也可以使用apt full-upgrade / apt-get dist-upgrade代替apt install package_name,但是我不建議這樣做。apt全面升級可能會在處理依賴項時自動刪除它認為不必要的軟件包。這可能會導致意外情況。