如前所述,无法安装软件包。我尝试在包管理器中安装 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)
那么我该如何解决呢?
答案1
清除该包的缓存副本有帮助吗?
易于清洁并不总是能做好工作,特别是对于安装了一半的软件包或标记有安装的软件包。我怀疑 libstdc++ 的 deb 文件在 /var/cache/apt 中以某种方式损坏...删除它或将其移出那里以 apt 不会有任何损害,会重新下载一个新副本。您也可以自己手动下载它,检查其哈希值以确保下载正常,然后使用dpkg -i xxx.deb以老式方式安装它。
另一种可以尝试的缓存清理方法是:
答案2
转到您的根文件系统并转到
/var/lib/dpkg/info/
剪切那里的所有文件并创建一个名为info.bak
under 的新文件
/var/lib/dpkg
粘贴您之前剪切的所有文件info.bak
,这解决了我的问题