ユーザーインタラクションなしでワインを使う

ユーザーインタラクションなしでワインを使う

シェルスクリプトでWindows実行可能ファイル(コンソールアプリケーション)を実行したいと思います。このスクリプトは自動的にパッケージを構築する大規模プロジェクトの一部であるため、ユーザーの対話を避ける必要があります。

実際に私が使用するものは次のとおりです。

export WINEARCH=win64
export WINEPREFIX=/somewhere/$WINEARCH
wine pgen.exe

デフォルトでは動作しますが、次の問題があります。

  1. 空の場合WINEPREFIX(最初に実行している場合)、設定を待っているというダイアログボックスが表示されます。私は実行中のXサーバーに頼ることを避けたいと思います。
  2. 以前にインストールされていない場合は、Geckoのインストールを求めるwineウィンドウが表示され、ユーザーの介入が必要です。
  3. WINEPREFIXwineを呼び出すユーザーが所有する必要があるため、上記のアプリケーションを実行するためにシステム全体のラッパーを提供する方法がわかりません。

後者の問題(この問題なしでは生きることができます)を除いて、他の問題はすべてブロックされます。結局のところ、コンソールアプリケーションを実行したいと思います。

答え1

wineテスト実行を有効にすると、$DISPLAYダイアログボックスの表示はスキップされ、ユーザー操作なしで実行されます。

DISPLAY= wine pgen.exe

プレフィックスの所有権の問題を回避するために、私は通常、WINEPREFIXプレフィックスが毎回再作成されるように一時ディレクトリを指定します(しかしこれは遅いです)。

答え2

Xセッションで一度実行してモノラルなどを設定することで、Wine環境を「起動」できます。その後、ディレクトリ全体をバックアップ.wineし、コンソールアプリケーションを実行する必要があるすべてのユーザーのベースとして使用します。

xvfb仮想Xサーバーとして使用できます。ここ自動的に起動する方法と同じです。その後、export DISPLAY=:1ワインの製造プロセスを開始する前に。コンソール実行ファイルのみを実行してもモニターなしでワインが実行されるのを防ぐには、これが必要です。 YMMV。

WINEPREFIXワインを実行しているユーザーがツリーを所有する必要があるのか​​、特定の.reg場所(ファイル、一時的な場所など)への書き込み権限のみが必要かはわかりません。

関連情報