Ubuntu 18.04 固件问题

Ubuntu 18.04 固件问题

我是 Linux 新手,刚刚在 Windows 10 上安装了 Ubuntu 18.04。安装并非 100% 成功,因为每次我想要安装新程序(例如 adobe flash player)时,终端都会显示以下内容:

The following packages have unmet dependencies:
 fwupdate : Depends: libfwup1 (= 10-3) but 12-3bionic2 is to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

当我尝试时sudo apt --fix-broken install,终端返回:

Preparing to unpack .../fwupdate_12-7~ubuntu18.04.3_amd64.deb ...
rm: cannot remove '/boot/efi/EFI/ubuntu/fwupx64.efi': Input/output error
dpkg: error processing archive /var/cache/apt/archives/fwupdate_12-7~ubuntu18.04.3_amd64.deb (--unpack):
 new fwupdate package pre-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/fwupdate_12-7~ubuntu18.04.3_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

这是索尼 Vaio 笔记本电脑。1TB HDD - CPU:i7 3537U - RAM:8GB

答案1

我认为这篇文章里有你的问题的答案:dpkg:新的预安装脚本返回错误退出状态 1

该包的 .preinst 脚本由于某种原因失败。

要找出原因,请检查脚本/var/lib/dpkg/info/PACKAGENAME.preinst

如果您想要确切地了解脚本在哪一行失败,请编辑 .preinst 脚本并set -x在该行后立即添加#!。这将在脚本中打开执行跟踪。

笔记:这假设 .preinst 脚本是一个 shell 脚本(posix sh 或 bash)。 几乎全部.preinst(以及 .postinst、.prerm 和 .postrm)脚本是 shell 脚本,但它们不一定是,它们可以是任何可执行文件。例如,在我的主台式机上安装了 9104 个软件包,其中 14 个是 perl 脚本,1 个是已编译的可执行文件(bash 的 preinst - 它不能假设已经安装了可运行的 shell),其余的都是 shell 脚本...9041 个是 POSIX shell 脚本,63 个是 bash 脚本。如果 .preinst 是 perl 或 python 或其他脚本,则必须弄清楚如何在该语言中启用调试或执行跟踪模式或类似模式。

然后运行dpkg --configure --pending

这将导致 dpkg 尝试配置半安装的软件包。不要用 重新安装它dpkg -i,否则会用 .deb 软件包中的版本覆盖您编辑的 .preinst 脚本。

这可能为您提供足够的信息来解决问题。它可能很简单,例如程序中意外或未捕获的退出代码(大多数 .preinst 等脚本都有set -e,以使它们在第一次出现错误时终止),或者假设目录已经存在(这可能是由于软件包的 debian/control 文件中未声明的依赖项 - 即它应该依赖于 foo 但实际上并非如此。无论如何都要安装 foo)

一旦修复,dpkg --configure --pending再次运行,包就应该正确安装。

如果 .preinst 脚本有问题,则 .postinst(和/或 .prerm 和 .postrm)脚本也很有可能有问题。您可能也需要修复它们。

不要忘记向软件包的制作者提交错误报告,以便他们能够修复它。

相关内容