我只是过去 10 年的 Ubuntu 用户。不知道内部工作原理。我使用的是 Ubuntu 18.04 64 位。设置未打开。软件更新程序最终抛出了此消息 -
“软件包安装或删除失败”
每当我尝试通过终端安装更新或安装任何软件时,我最终都会得到这个 -
dpkg:无法恢复的致命错误,中止:软件包“libsmbclient:i386”的文件列表文件包含空文件名 E:子进程 /usr/bin/dpkg 返回错误代码 (2)
可能出了什么问题?有希望恢复正常吗?
答案1
请使用以下命令列出您的 apt 缓存的内容:
ls -l /var/cache/apt/archives/
此列表应包含缓存中的软件包列表,包括导致问题的软件包的完整名称。查找包含的内容libsmbclient
。复制完整的文件名,包括.deb
末尾的扩展名。
使用此公式和您的实际文件名确认文件是否已损坏:
dpkg --contents /var/cache/apt/archive/<complete name of the libsmbclient file here>.deb
未损坏的文件将显示目录和文件列表。其他任何内容都意味着文件已损坏。然后您可以下载所需的文件:
sudo apt-get --reinstall --download-only libsmbclient
并使用此命令执行修复(按原样复制但用文件full-name-of-your-package.deb
的实际名称替换:.deb
/var/cache/apt/archives/
sudo dpkg -c /var/cache/apt/archives/full-name-of-your-package.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/libsmbclient.list
有关这种情况发生的原因和方式的更多信息,你可以查看原文发射台错误报告或这个问题的另一个例子在 AskUbuntu 中,但影响不同的包名称。
答案2
你可能想看看这个链接我收到此错误:dpkg:无法恢复的致命错误,中止:包“fonts-tlwg-kinnari”的文件列表文件包含空文件名
这就是答案,仅适用于慢速连接:这是在启动板上报告的一个错误。
显示的错误可能是:
包‘*’的文件列表文件缺少最后的换行符或者:
包‘*’的文件列表文件包含一个空文件名,其中*开头是一个随机但稳定的“每个安装”包名称。
解决方案:
下载.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 您可以在 launchpad 上阅读更多内容