Wine 安装中的 Apt 失败,如何恢复系统的一致状态?

Wine 安装中的 Apt 失败,如何恢复系统的一致状态?

当我尝试安装 wine 时出现此错误:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
winetricks is already the newest version (0.0+20180217-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
3 not fully installed or removed.
Need to get 0 B/273 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
dpkg: error processing package libopenal1:i386 (--configure):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting configuration
dpkg: dependency problems prevent configuration of libwine:i386:
 libwine:i386 depends on libopenal1 (>= 1.14); however:
  Package libopenal1:i386 is not configured yet.

dpkg: error processing package libwine:i386 (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                    No apport report written because the error message indicates its a followup error from a previous failure.
                                        dpkg: dependency problems prevent configuration of wine32:i386:
 wine32:i386 depends on libwine (= 3.0-1ubuntu1); however:
  Package libwine:i386 is not configured yet.

dpkg: error processing package wine32:i386 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 libopenal1:i386
 libwine:i386
 wine32:i386
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

通常,在这种情况下,真正的原因是第一个错误,即:

dpkg: error processing package libopenal1:i386 (--configure):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting configuration

因此,wine 软件包需要该libopenal1:i386软件包才能工作,但目前处于“非常糟糕的不一致状态”。以下错误消息只是依赖性问题 - 无法安装 wine,因为 libopenal1 也无法安装,但 wine 需要它。

这可能不是您第一次尝试安装 wine,仅当多次安装/卸载/升级尝试失败并且自动更正机制失败时才会出现这种情况。

你不应该想象微软用他的 .msi 文件做什么。deb 包只有这些组件:

  1. tar.xz 存档
  2. 一些包元数据(这是为dpkg --info something.deb或 所显示的内容apt-cache show something
  3. 安装/卸载脚本,这些通常是 10-20 行长的 shell 脚本,在软件包安装/卸载/升级时被调用。它们位于 中/var/lib/dpkg/info,其名称为<packagename>.preinst<packagename>.postinst和。<packagename>.prerm<packagename>.postrm

如果软件包安装/卸载脚本出现错误,您的软件包将进入不一致状态。不一致程度如何,取决于具体情况。需要知道的重要一点是:它不像某些需要重新安装的神秘 Windows 系统故障。它只是一个简单的安装脚本中的一条简单错误消息,您可以轻松修复它。

你可以使用命令检查系统中是否存在不一致状态的软件包dpkg -C。与 Unix 系统一样,空答案表示一切正常,没有坏包。

大多数问题可以通过 自动修复apt-get -f install。此命令会尽力让您的系统再次进入一致状态。如果您正在做一些“更难”的事情,例如从 32 位系统切换到 64 位系统或反之亦然,而无需重新启动,或者您在发行版之间切换,也无需重新启动,那么它特别有用。

就你的情况而言,由于这种“非常糟糕的不一致状态”是最糟糕的,所以 anapt-get -f install可能无法工作,但你可以试一试。如果它不起作用,你的下一个任务应该是修复它libopenal1:i386。它是 x11 的一些 3d 加速或直接硬件访问库,我不知道它到底在做什么,但这甚至不重要。重要的是:它会随 wine 进入你的系统,所以只有 wine 需要它。Wine 可能使用它来模拟图形加速的 32 位 Windows 程序。所以你可以安全地使用它来删除/重新安装。

失败后apt-get -f install,下一步应该是将其libopenal1:i386从系统中清除。你能做的“最强”的事情是dpkg --force-depends --purge libopenal1:i386。这也可能不起作用,因为错误消息清楚地表明该软件包需要重新安装。

因此,您必须libopenal1:i386先重新安装。在 中/var/cache/apt/archives,您有软件包文件,它应该包含与 匹配的文件libopenal1*i386.deb。如果没有,那么您可以使用apt-get download libopenal1:i386目录从 ubuntu 软件包存储库下载它。

Adpkg -i libopenal1*i386.deb将尝试再次安装此文件。如果成功,则表示您很幸运,anapt-get -f install将修复您的系统并正确安装 wine。如果不成功,则您必须调试安装脚本。

延伸这个问题,发生了什么,我将延伸答案,关于这一点,该怎么做。

相关内容