多次運行 apt update 導致無法升級

多次運行 apt update 導致無法升級

我有一個更新系統的腳本:

sudo apt update && sudo apt upgrade && sudo apt autoremove

有時它會拋出一個錯誤,指出升級已鎖定,因此無法升級可升級的軟體包。當我再次運行腳本時,當時apt update沒有顯示任何要升級的內容,而當它是時候不運行apt upgrade升級時,因為「沒有任何內容」要升級。如何升級第一個中列出的軟體包apt update

真實案例:現在我有 Firefox 67.0.3(版本 67.0.4 可用),第一個apt update顯示它有更新。無法升級,現在當我apt update再次運行時,沒有列出 Firefox 的升級,也apt upgrade沒有升級任何內容。

我在谷歌搜尋這個問題但沒有成功。我將不勝感激任何形式的幫助。

預先感謝,並對我的英語感到抱歉

答案1

最可能的原因是您偶爾在執行腳本的同時執行無人值守升級。

透過查看無人值守升級日誌可以輕鬆檢查。

以下是今天早些時候我的無人值守升級日誌的範例:

$ grep 2019-06-21 /var/log/unattended-upgrades/unattended-upgrades.log

2019-06-21 06:35:25,971 INFO Initial blacklist : 
2019-06-21 06:35:25,986 INFO Initial whitelist: 
2019-06-21 06:35:25,986 INFO Starting unattended upgrades script
2019-06-21 06:35:25,986 INFO Allowed origins are: o=Ubuntu,a=disco, o=Ubuntu,a=disco-security, o=UbuntuESM,a=disco, 
2019-06-21 06:36:00,248 INFO Packages that will be upgraded: bind9-host intel-microcode libbind9-161 libdns-export1104 libdns1104 libirs161 libisc-export1100 libisc1100 libisccc161 libisccfg163 liblwres161 libpq5
2019-06-21 06:36:00,248 INFO Writing dpkg log to /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
2019-06-21 06:37:18,374 INFO All upgrades installed

看一下日誌的第 5 行 ( Packages that will be upgraded:...):該清單是直接從 apt 中拉取的。它是幾乎您從 獲得的相同清單sudo apt update。無人值守升級的預設設定是僅使用 -security pocket。不是更新,不是向後移植,不是 PPA,不是第三方儲存庫。所以一些非安全的套件可能不會安裝。您可以更改此設定。

現在看看日誌的第 7 行 ( All upgrades installed):這是您對第 5 行列出的所有軟體包均已成功升級的肯定確認,並且無人值守升級已釋放 apt 鎖定並在當天終止。如果出現問題或故障,或者 UU 仍在工作,那麼您將不會看到此行。

您可以看到,如果我在 06:35 運行手冊sudo apt update,就會有很多軟體包需要升級。但如果我在 06:38 運行sudo apt upgrade,則不會升級任何軟體包...因為無人值守升級已經這樣做了。

答案2

我敢打賭,每當 sudo apt update 完成時,Ubuntu 軟體更新都會阻礙。您應該打開軟體更新設定並確保將其設定為所有“從不”選項。我不認為這會抑制彈出窗口,但它應該會阻止它嘗試自動升級和鎖定檔案。

為了修復 Firefox,我會運行sudo apt install --reinstall firefox並查看是否可以解決問題。如果它抱怨鎖,您通常可以使用 刪除它sudo rm /var/lib/dpkg/lock

順便說一句,對於您的腳本,您可以使用以下命令來加速它sudo -- sh -c 'apt update; apt upgrade --autoremove -y'

相關內容