我在使用 wine 时遇到了问题,因为它可以运行 64 位 Windows 程序,但不能运行 32 位程序。我尝试安装 32 位的 utorrent,但 wine 返回了此信息...
abhirup@debian:~/Downloads$ wine ./uTorrent.exe
000f:err:service:process_send_command receiving command result timed out
000f:fixme:service:scmdatabase_autostart_services Auto-start service L"winebus" failed to start: 1053
0032:fixme:ver:GetCurrentPackageId (0xaeff0c (nil)): stub
0032:fixme:wbemprox:client_security_SetBlanket 6795E768, 0084AB78, 10, 0, (null), 3, 3, 00000000, 0x00000000
0032:fixme:wbemprox:client_security_Release 6795E768
0032:fixme:wbemprox:client_security_SetBlanket 6795E768, 0083A9E8, 10, 0, (null), 3, 3, 00000000, 0x00000000
0032:fixme:wbemprox:client_security_Release 6795E768
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 151 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 170
Current serial number in output stream: 174
现在我在谷歌上搜索了两行“libGL 错误:未找到匹配的 fbConfigs 或视觉效果”和“libGL 错误:无法加载驱动程序:swrast”,我了解到 libGl 是一个 openGL 库,wine 使用它在屏幕上显示某些内容,而 libGL 有两个组件:32 位和 64 位。
我在 debian 10 上,使用带有 RTX 2060 gpu 的 Nvidia 450.80.02 Linux 驱动程序,libGL 文件位于:
/usr/lib/x86_64-linux-gnu/libGL.so.1.7.0 (64 bit)
/usr/lib/i386-linux-gnu/libGL.so.1.7.0 (32 bit)
以下是这些库的符号链接:
/usr/lib/libGL.so.1->/usr/lib/x86_64-linux-gnu/libGL.so.1->/usr/lib/x86_64-linux-gnu/libGL.so.1.7.0
/usr/lib/i386-linux-gnu/libGL.so.1->/usr/lib/i386-linux-gnu/libGL.so.1.7.0
因此,在确认我的系统中有一个 32 位库之后,我不知道如何知道 Wine 试图使用哪个 32 位 openGL 库来运行 32 位程序,以及如何更改它,因为我猜测该库不高于 1。此外,我注意到 32 位和 64 位库的符号链接“树”结构不同。那么这是导致问题的原因吗?
有人知道如何修复该问题吗,或者建议我一些其他方法让 wine 能够在 32 位上运行吗?
答案1
您是否wine
安装了 32 位版本?检查您的软件包管理器,看是否已wine32
安装。您可能需要将体系结构 ( sudo dpkg --add-architecture i386
) 添加到您的系统,更新软件包列表 ( sudo apt update
) 并安装 wine32 ( sudo apt install wine32
)。
要安装/运行 32 位 Windows 程序,您必须基于 wine32 创建一个新 wine 前缀并在那里安装程序。他们有一个关于此的部分在他们的常见问题解答中其本质是:
WINEARCH=win32 WINEPREFIX=path_to_wineprefix winecfg
(使用 wineprefix 的实际路径)
不要将现有目录用于新的 wineprefix:Wine 必须创建它。
然后在那里安装 µTorrent。