当我尝试安装 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 包只有这些组件:
- tar.xz 存档
- 一些包元数据(这是为
dpkg --info something.deb
或 所显示的内容apt-cache show something
) - 安装/卸载脚本,这些通常是 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。如果不成功,则您必须调试安装脚本。
延伸这个问题,发生了什么,我将延伸答案,关于这一点,该怎么做。