wine 的滚动升级/部署?

wine 的滚动升级/部署?

当我使用 wine 在 Lubuntu 18.04 上运行一些 Windows exe 程序文件时,我更新并升级了可能已经更新了 wine 的文件。

当我仍在运行 Windows exe 程序时,我尝试运行另一个 Windows exe 程序,

$ wine another.exe
wine client error:0: version mismatch 547/571.
Your wineserver binary was not upgraded correctly,
or you have an older one somewhere in your PATH.
Or maybe the wrong wineserver is still running?

我不想退出正在运行的 Windows exe 程序。这是否意味着我不应该终止正在运行的 wine 进程?如何启动另一个窗口 exe 程序?

这是部署中的常见问题:滚动升级/部署吗?

谢谢。

答案1

我知道现在已经太晚了,但一般规则是您不应在 Wine 运行时升级它,或者如果升级,请计划在升级后尽快重新启动正在运行的实例。 (许多其他程序也是如此,例如 Firefox 和 LibreOffice。)

我不想退出正在运行的 Windows exe 程序。这是否意味着我不应该终止正在运行的 wine 进程?

是的,您不应该终止正在运行的 Wine 进程。

如何启动另一个窗口 exe 程序?

可以将当前的 Wine 前缀复制到一个新前缀,并在那里启动升级后的 Wine — Wine 每个前缀运行一台服务器。假设您当前的 Wine 前缀是~/.wine,您将运行

cp -a ~/.wine ~/.wine.new
WINEPREFIX=~/.wine.new wine /path/to/your/program.exe

这是部署中的常见问题:滚动升级/部署吗?

是的,或者至少,这是一个需要明确解决的场景:新版本的服务器需要接受和处理来自旧版本客户端的连接。在 Wine 的例子中,客户端期望连接到运行相同版本的服务器;没有分割升级的规定。这种期望嵌入在很多地方:主要NTDLL检查wineserver版本,许多 DLL 检查其相应的 Wine 驱动程序版本等。

相关内容