Linux-Mint

無法在 linux mint、終端和包管理器中安裝/升級包

  • February 21, 2020

如前所述,無法安裝軟體包。我嘗試在包管理器中安裝 VLC,但出現錯誤消息

installArchives() failed: Selecting previously unselected package libaribb24-0:amd64.
(Reading database ... 
(Reading database ... 5%%
(Reading database ... 10%%
(Reading database ... 15%%
(Reading database ... 20%%
(Reading database ... 25%%
(Reading database ... 30%%
(Reading database ... 35%%
(Reading database ... 40%%
(Reading database ... 45%%
(Reading database ... 50%%
(Reading database ... 55%%
dpkg: unrecoverable fatal error, aborting:
files list file for package 'libstdc++-6-dev:amd64' contains empty filename

基本上任何其他軟體包也可以做到這一點。我試圖這樣做:

sudo rm /var/lib/dpkg/available 
sudo touch /var/lib/dpkg/available
sudo sh -c 'for i in /var/lib/apt/lists/*_Packages; do dpkg --merge-avail "$i"; done'
sudo dpkg --configure -a
sudo apt-get -f install
sudo apt-get clean
sudo apt-get update && sudo apt-get upgrade

並且沒有取得任何進展,仍然是同樣的錯誤。輸入後在終端中

sudo apt-get install vlc

我明白了:

dpkg: unrecoverable fatal error, aborting:
files list file for package 'libstdc++-6-dev:amd64' contains empty filename
E: Sub-process /usr/bin/dpkg returned an error code (2)

那麼我該如何解決呢?

轉到您的根文件系統並轉到

/var/lib/dpkg/info/ 

剪切那裡的所有文件並創建一個名為的新info.bak文件

/var/lib/dpkg

粘貼您之前剪切的所有文件info.bak,這解決了我的問題

清除該包的記憶體副本有幫助嗎?

apt-get clean並不總是能正常工作,尤其是安裝了一半的軟體包或標有安裝的軟體包。我的懷疑是 libstdc++ 的 deb 文件在 /var/cache/apt 中以某種方式損壞……刪除它或將其移出那裡到 apt 沒有任何害處,將重新下載一個新副本。您也可以自己手動下載它,檢查其雜湊以確保下載正常,然後使用dpkg -i xxx.deb以老式方式安裝它。

要嘗試的另一件事是這種記憶體清理方法:

https://askubuntu.com/questions/648736/i-get-this-error-dpkg-unrecoverable-fatal-error-aborting-files-list-file-for

引用自:https://unix.stackexchange.com/questions/568467