我在物理機和虛擬機中都安裝有一些 Arch Linux 系統,我會在需要時訪問它們。將近兩個月后,當我嘗試使用 sudo pacman -Syu
升級其中一個中的 Arch Linux 時,我遇到了數百個這樣的錯誤:
Arch Linux 中無效或損壞的包錯誤示例
問題是當你遇到上面的錯誤時,你無法升級/更新你的 Arch 系統。即使你同步鏡像或獲得更快的鏡像。所以,如果你運行 sudo pacman -Syyu
,錯誤仍然存在。這就造成了困難,因為在修復此問題之前你無法安裝任何其他軟件包。
原因
當你在 Arch Linux 系統上安裝或升級軟件包時,pacman 會根據 archlinux-keyring
軟件包中的密鑰檢查軟件包的數字簽名。此驗證過程可確保你下載和安裝的軟件包未經修改且來自受信任的來源。
它包含用于 驗證包的真實性和完整性 和 pacman 中的密鑰環。archlinux-keyring
包由 Arch Linux 開發人員定期更新,以包含新的可信密鑰并撤銷任何泄露的密鑰。
如果你長時間未對 Arch Linux 系統進行更新,各種軟件包的數字簽名可能會不一致。更改后的密鑰可能與你系統中的密鑰不匹配。
因此出現錯誤了。
修復
要修復 Arch Linux 中的 “invalid or corrupted package (PGP signature)” 錯誤,你需要從 Core
倉庫安裝/更新 archlinux-keyring
包。從終端運行以下命令:
sudo pacman -S archlinux-keyring
上述命令完成后,運行升級:
sudo pacman -Syu
這將解決問題,你可以在 Arch Linux 中繼續你的正常活動。建議始終保持 archlinux-keyring
包為最新,以維護 Arch Linux 系統的安全性和完整性。