修復(fù)Ubuntu中的 “Unable to parse package file” 錯(cuò)誤
過去,我已經(jīng)討論了許多 Ubuntu 更新錯(cuò)誤。如果你使用命令行更新 Ubuntu,那可能會(huì)遇到一些“錯(cuò)誤”。
其中一些“錯(cuò)誤”基本上是內(nèi)置功能,可防止對(duì)系統(tǒng)進(jìn)行不必要的更改。在本教程中,我不會(huì)涉及那些細(xì)節(jié)。
在本文中,我將向你展示如何解決在更新系統(tǒng)或安裝新軟件時(shí)可能遇到的以下錯(cuò)誤:
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.
在 Debian 中可能會(huì)遇到類似的錯(cuò)誤:
E: Unable to parse package file /var/lib/apt/extended_states (1)
即使遇到 The package cache file is corrupted
也完全不必驚慌。這真的很容易“修復(fù)”。
在基于 Ubuntu 和 Debian 的 Linux 發(fā)行版中處理 “Unable to parse package file” 錯(cuò)誤
以下是你需要做的。仔細(xì)查看 Ubuntu 報(bào)錯(cuò)文件的名稱和路徑。
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.
例如,上面的錯(cuò)誤是在報(bào) /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease
文件錯(cuò)誤。
這讓你想到這個(gè)文件不正確?,F(xiàn)在,你需要做的就是刪除該文件并重新生成緩存。
sudo rm <file_that_is_not_parsed>
因此,這里我可以使用以下命令:sudo rm /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease
,然后使用 sudo apt update
命令重建緩存。
給初學(xué)者的分步指導(dǎo)
如果你熟悉 Linux 命令,那么可能知道如何使用絕對(duì)路徑刪除文件。對(duì)于新手用戶,讓我指導(dǎo)你安全刪除文件。
首先,你應(yīng)該進(jìn)入文件目錄:
cd /var/lib/apt/lists/
現(xiàn)在刪除無法解析的文件:
sudo rm archive.ubuntu.com_ubuntu_dists_bionic_InRelease
現(xiàn)在,如果你再次運(yùn)行更新,將重新生成 apt 緩存。
sudo apt update
有很多文件無法解析?
如果你在更新系統(tǒng)時(shí)有一個(gè)或兩個(gè)文件無法解析,那么問題不大。但是,如果系統(tǒng)報(bào)錯(cuò)有十個(gè)或二十個(gè)此類文件,那么一一刪除它們就太累了。
在這種情況下,你可以執(zhí)行以下操作來刪除整個(gè)緩存,然后再次生成它:
sudo rm -r /var/lib/apt/lists/*
sudo apt update
解釋這為何能解決問題
/var/lib/apt
是與 apt 軟件包管理器相關(guān)的文件和數(shù)據(jù)的存儲(chǔ)目錄。/var/lib/apt/lists
是用于保存系統(tǒng) source.list
中指定的每個(gè)軟件包資源信息的目錄。
簡(jiǎn)單點(diǎn)來說,/var/lib/apt/lists
保存軟件包信息緩存。當(dāng)你要安裝或更新程序時(shí),系統(tǒng)會(huì)在此目錄中檢查該軟件包中的信息。如果找到了該包的詳細(xì)信息,那么它將進(jìn)入遠(yuǎn)程倉庫并實(shí)際下載程序或其更新。
當(dāng)你運(yùn)行 sudo apt update
時(shí),它將構(gòu)建緩存。這就是為什么即使刪除 /var/lib/apt/lists
目錄中的所有內(nèi)容,運(yùn)行更新也會(huì)建立新的緩存的原因。
這就是處理文件無法解析問題的方式。你的系統(tǒng)報(bào)某個(gè)軟件包或倉庫信息以某種方式損壞(下載失敗或手動(dòng)更改 sources.list
)。刪除該文件(或所有文件)并重建緩存即可解決此問題。