Ubuntu 18.04 中更新、安装 dpkg 问题

Ubuntu 18.04 中更新、安装 dpkg 问题

我只是过去 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 上阅读更多内容

相关内容