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