![我收到此错误:dpkg:无法恢复的致命错误,中止:包“fonts-tlwg-kinnari”的文件列表文件包含空文件名](https://linux22.com/image/874134/%E6%88%91%E6%94%B6%E5%88%B0%E6%AD%A4%E9%94%99%E8%AF%AF%EF%BC%9Adpkg%EF%BC%9A%E6%97%A0%E6%B3%95%E6%81%A2%E5%A4%8D%E7%9A%84%E8%87%B4%E5%91%BD%E9%94%99%E8%AF%AF%EF%BC%8C%E4%B8%AD%E6%AD%A2%EF%BC%9A%E5%8C%85%E2%80%9Cfonts-tlwg-kinnari%E2%80%9D%E7%9A%84%E6%96%87%E4%BB%B6%E5%88%97%E8%A1%A8%E6%96%87%E4%BB%B6%E5%8C%85%E5%90%AB%E7%A9%BA%E6%96%87%E4%BB%B6%E5%90%8D.png)
当我尝试安装时出现此错误:
dpkg: unrecoverable fatal error, aborting: files list file for package `fonts-tlwg-kinnari' contains empty filename
E: Sub-process /usr/bin/dpkg returned an error code (2)
安装中止。
我正在使用 Ubuntu 14.04
答案1
这是在启动板上报告的一个错误。
显示的错误可能是:
files list file for package '*' is missing final newline
或者:
files list file for package '*' contains an empty filename
其中 * start 是随机但稳定的“每个安装”包名称。
解决方案:
下载.deb
sudo apt-get download fonts-tlwg-kinnari
运行此代码
sudo dpkg -c /var/cache/apt/archives/fonts-tlwg-kinnari_1%3a0.5.1-3_all.deb | awk '{if ($6 == "./") { print "/."; } \
else if (substr($6, length($6), 1) == "/") \
{print substr($6, 2, length($6) - 2); } \
else { print substr($6, 2, length($6) - 1);}}' > /var/lib/dpkg/info/fonts-tlwg-kinnari.list
您可以在以下网址阅读更多内容发射台
答案2
上述 Adrian 的回答中的另一个选择是:
sudo rm /var/lib/dpkg/info/fonts-tlwg-kinnari.list
进而
sudo apt-get install --reinstall fonts-tlwg-kinnari
基本上,这个错误意味着你的文件系统上有东西损坏了。这是一个不好的迹象,软件包管理器需要这些列表文件来确定哪些东西可以安全升级,哪些东西不可以安全升级。
这个列表文件的重新生成是最好的选择,但它并不是 100% 安全的。
无论哪种方式,请记住您的驱动器出现了问题,并警惕更多错误。
答案3
Adrian Cid Almaguer 的回答是唯一对我有用的,其基本思路是“从 .deb 包中重新创建丢失的文件”。
但请注意:首先检查/var/cache/apt/archives/
.deb/var/lib/dpkg/info
文件是否已存在。如果存在,则直接使用该文件,而不要执行sudo apt-get download
。
此外,sudo dpkg ... | awk ... | sudo tee /var/lib/dpkg/info/example.list
对于大多数人来说,这种组合可能会更好地发挥作用;sudo tee
克服重定向遇到的权限问题>
。
答案4
我终于有时间自己解决这个问题了。以供将来参考
我将所有 linux* 文件移动到了其他地方。例如:~/ (home) sudo mv /var/lib/dpkg/info/linux* ./
sudo dpkg --configure -a
sudo apt update
sudo apt upgrade
这解决了它