it-swarm-ja.com

完全にヘッドレスでワインを走らせる

Wineをヘッドレスで実行し、エラーメッセージを回避したい:

Xサーバーが実行中であり、$ DISPLAYが正しく設定されていることを確認してください。

方法はありますか、それを出力にルーティング/転送する必要がありますか?コマンドラインから実行できますか?

16
FabioCosta

私はワインを実行する方法を知りません完全にヘッドレスですが、xvfbを紹介することができます。 Xサーバーが出力をリダイレクトできる仮想ディスプレイを作成できます。物理的なディスプレイを接続する必要はありません。これを使用して、ヘッドレスのJenkinsクラスター上のブラウザーでSeleniumテストを実行します。

それは要件を満たしていますか、それとも完全にヘッドレスワインを実行することに専念していますか?

11
Erathiel

X virtual framebuffer をインストールすることにより、ワインをヘッドレスで実行するように構成できます。例えば:

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実行可能ファイルを実行できます。

12
kenorb