web-dev-qa-db-ja.com

ターミナルウィンドウからWineでアプリケーションを起動する方法

古いWindowsアプリケーションを実行するために、LinuxサーバーでWineを実行しています。

次に、スクリプトが実行されていることを確認する必要があります。

サーバーへのssh接続を作成してアプリケーションを起動することは可能ですか?

例えばデスクトップにいる場合は、ターミナルウィンドウを開いて実行します

wine "Z:\home\user\Desktop\application"

アプリケーションが開きます。しかし、SSHで接続して実行した場合

wine "Z:\home\user\Desktop\application"

私は得ます:

Application tried to create a window, but no driver could be loaded.
Make sure that your X server is running and that $DISPLAY is set correctly.
err:systray:initialize_systray Could not create tray window
Application tried to create a window, but no driver could be loaded.
Make sure that your X server is running and that $DISPLAY is set correctly. 

私はそれを伝える必要があると仮定していますwhereアプリケーションを開始するだけでなく、アプリケーションを開始するには、これを行う方法がわかりませんか?


追加情報:

現在、Windows PCで作業しており、PuTTYを使用してLinux/Wineサーバーに接続しています。 (デスクトップが見えるようにRDP接続もあります)。

長期的には、別のLinuxサーバー(MgmtSrv)でスクリプトを実行して、Linux /ワインサーバーにssh接続してスクリプトを管理します。 MgmtSrvにはWineがインストールされておらず、X-Displayもセットアップされていません。

5
IGGt

ご想像のとおり、Wineにアプリケーションを表示する場所を指示する必要があります。 WineサーバーにはXディスプレイがあるので、おそらく:0

DISPLAY=:0 wine ...

トリックを実行する必要があります(X認証Cookieに問題がないことを前提とします。そうでない場合は、Invalid MIT-MAGIC-COOKIEエラー)。

5
Stephen Kitt

アプリケーションの種類に応じて、次の方法があります。

  • アプリケーションがコンソールベース(グラフィックなし)の場合は、 wineconsole を使用して実行します(wineではありません)。
  • Xサーバーがインストールされている場合は、DISPLAY変数を指定して、正しい画面を指す必要があります。
  • X11 Forwardingを介してアプリケーションを実行する場合、 configure X11Forwarding SSH構成で。
  • ヘッドレスでグラフィックスプログラムを実行する場合は、 X virtual framebuffer のインストールを検討してください。
0
kenorb