修復 Ubuntu 中的 「Unable to parse package file」 錯誤
以下是你需要做的。仔細查看 Ubuntu 報錯文件的名稱和路徑。
Reading package lists… Error!
E: Unable to parse package file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease
E: The package lists or status file could not be parsed or opened.
例如,上面的錯誤是在報 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease
文件錯誤。
這讓你想到這個文件不正確。現在,你需要做的就是刪除該文件並重新生成緩存。
sudo rm <file_that_is_not_parsed>
因此,這裡我可以使用以下命令:sudo rm /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease
,然後使用 sudo apt update
命令重建緩存。
給初學者的分步指導
如果你熟悉 Linux 命令,那麼可能知道如何使用絕對路徑刪除文件。對於新手用戶,讓我指導你安全刪除文件。
首先,你應該進入文件目錄:
cd /var/lib/apt/lists/
現在刪除無法解析的文件:
sudo rm archive.ubuntu.com_ubuntu_dists_bionic_InRelease
現在,如果你再次運行更新,將重新生成 apt 緩存。
sudo apt update
有很多文件無法解析?
如果你在更新系統時有一個或兩個文件無法解析,那麼問題不大。但是,如果系統報錯有十個或二十個此類文件,那麼一一刪除它們就太累了。
在這種情況下,你可以執行以下操作來刪除整個緩存,然後再次生成它:
sudo rm -r /var/lib/apt/lists/*
sudo apt update
解釋這為何能解決問題
/var/lib/apt
是與 apt 軟體包管理器相關的文件和數據的存儲目錄。/var/lib/apt/lists
是用於保存系統 source.list
中指定的每個軟體包資源信息的目錄。
簡單點來說,/var/lib/apt/lists
保存軟體包信息緩存。當你要安裝或更新程序時,系統會在此目錄中檢查該軟體包中的信息。如果找到了該包的詳細信息,那麼它將進入遠程倉庫並實際下載程序或其更新。
當你運行 sudo apt update
時,它將構建緩存。這就是為什麼即使刪除 /var/lib/apt/lists
目錄中的所有內容,運行更新也會建立新的緩存的原因。
這就是處理文件無法解析問題的方式。你的系統報某個軟體包或倉庫信息以某種方式損壞(下載失敗或手動更改 sources.list
)。刪除該文件(或所有文件)並重建緩存即可解決此問題。
仍然有錯誤?
這應該能解決你的問題。但是,如果問題仍然存在,或者你還有其他相關問題,請在評論欄告訴我,我將儘力幫助你。
via: https://itsfoss.com/unable-to-parse-package-file/
作者:Abhishek Prakash 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive