我想无头运行 wine 并避免出现错误消息:
确保您的 X 服务器正在运行并且 $DISPLAY 设置正确。
有什么办法吗?还是我必须将其路由/转发到某个输出?它能从命令行运行吗?
答案1
注意:请注意此答案下面的评论。Xvfb 似乎已被弃用。
我不知道如何运行 wine完全无头式,但我可以指出xvfb
。它可以创建一个虚拟显示器,X 服务器可以将其输出重定向到该虚拟显示器。无需连接物理显示器。我们使用它在无头式 Jenkins 集群上的浏览器中运行 selenium 测试。
这是否满足要求或者您是否执意要完全无头运行 wine?
答案2
您可以通过安装配置 Wine 以无头运行X 虚拟帧缓冲区。 例如:
sudo apt-get install xvfb
Xvfb :0 -screen 0 1024x768x16 &
安装 Wine:
# On 64-bit also run: sudo dpkg --add-architecture i386
sudo add-apt-repository -y ppa:ubuntu-wine
sudo apt-get update
sudo apt-get install wine
注意:有关详细的安装示例,请查看provision.sh
脚本。
如果需要,安装字体:
winetricks allfonts
然后以以下方式运行您的应用程序:
DISPLAY=:0.0 wine my_app.exe
或者您可以导出它(因此运行时不需要上述前缀):
export DISPLAY=:0.0 # Select screen 0.
DISPLAY
您对本地显示/输入服务的请求在哪里(或export DISPLAY=[user's machine]:0
:)。
或者设置 X11 转发。这样您就不需要使用DISPLAY
。
基本上在无头服务器上以及您连接的机器上进行X11Forwarding yes
设置。/etc/ssh/sshd_config
ForwardX11 yes
/etc/sshd/ssh_config
然后,您可以在无头服务器上运行 GUI 应用程序,同时 wine 将能够连接到本地 X11 服务器,这样您就可以运行基于控制台的 DOS 可执行文件。