我在 macOS 10.13.4 上使用 Wine 时遇到了一个奇怪的问题。我安装了 Homebrew,并且安装了 Wine brew install wine winetricks
。
$ wine --version
wine-3.0
当我运行时,wineboot --init > log 2>&1
我得到一个对话框,上面写着The Wine configuration in /Users/richard/.wine is being updated, please wait
。日志文件如下所示:
wine: created the configuration directory '/Users/richard/.wine'
0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0012:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0012:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0012:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0012:err:ole:get_local_server_stream Failed: 80004002
0014:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0014:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0014:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0014:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0014:err:ole:get_local_server_stream Failed: 80004002
0017:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
0017:err:mscoree:LoadLibraryShim error reading registry key for installroot
0017:err:mscoree:LoadLibraryShim error reading registry key for installroot
0017:err:mscoree:LoadLibraryShim error reading registry key for installroot
0017:err:mscoree:LoadLibraryShim error reading registry key for installroot
0017:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0017:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
001b:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
001b:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
001b:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0010:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
0010:fixme:dwmapi:DwmIsCompositionEnabled 0x6dbd1518
0010:fixme:winsock:set_dont_fragment IP_DONTFRAGMENT for IPv4 not supported in this platform
001d:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x69ebd3de, context 0x9e6640, init_notify 0, handle 0x12dfa40): stub
0009:err:process:__wine_kernel_init boot event wait timed out
004a:fixme:mountmgr:DriverEntry failed to create device error c0000035
004a:err:winedevice:async_create_driver failed to create driver L"MountMgr": c0000035
005a:err:hid_report:process_hid_report Device reports coming in too fast, last report not read yet!
005a:err:hid_report:process_hid_report Device reports coming in too fast, last report not read yet!
[THE ABOVE LINE IS REPEATED 1000s OF TIMES]
当我wine64
在一小时后使用 SIGTERM 终止程序时,以下几行被附加到日志文件中:
006e:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
006e:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
006e:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
006c:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
006c:fixme:dwmapi:DwmIsCompositionEnabled 0x6d5d3018
0070:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x6a0cb608, context 0x958950, init_notify 0, handle 0x119fce8): stub
006c:fixme:winsock:set_dont_fragment IP_DONTFRAGMENT for IPv4 not supported in this platform
wine: configuration in '/Users/richard/.wine' has been updated.
- 我
rm -rf ~/.wine
在这一切之前就这么做过 WINEPREFIX
未设置- Homebrew 并且
wine
是最新可用版本 wineboot
,wineboot --init
都有wineboot --update
同样的问题
我怎样才能wineboot
不挂起而完成?
编辑:我目前正在设置 macOS 10.13.4 虚拟机来测试是否发生同样的事情。
编辑 2:我在全新的 macOS 10.13.4 虚拟机中测试过,遇到了同样的问题。我尝试过brew install wine
(针对 Wine 3.0 稳定版)和brew install wine --HEAD
(针对最新的 Wine 3.7),两者都遇到了同样的wineboot
挂起问题。
编辑 3:我认为日志行0009:err:process:__wine_kernel_init boot event wait timed out
可能是问题所在,但不知道如何解决它。
答案1
刚刚发现这是 Homebrew 版本的一个已知错误,请参阅https://github.com/Homebrew/homebrew-core/issues/26384。目前的解决方法是使用官方版本https://dl.winehq.org/wine-builds/macosx/download.html。
答案2
命令wineboot
挂起,因为它很可能会弹出一些错误信息。要查看弹出消息错误,请确保您已DISPLAY
配置指向当前显示的正确变量。
常见问题是弹出有关缺少 Gecko 的提示。wineboot
非交互运行的解决方法是忽略 Gecko 包通过以下命令:
WINEDLLOVERRIDES="mscoree,mshtml=" wineboot -i
另一个问题可能与 .NET/rundll32 有关,请参阅:错误 #47144。