Wine で Windows アプリケーションを起動

UNIX 上で Windowsのアプリケーションをエミュレートする Wine というプログラムをちょっといじってみます。Wineは、DOS, Windows 3.X および Win32 といった API をもつ x86 バイナリーを UNIX 上で実行することができます。バイナリーである EXE 以外にも DLL もロードできます。ただし、まだαバージョンなのであまり過度な期待はしないで下さい。

* ソースの入手

バイナリーを入手してインストールしても構いませんが、ここではソースを入手してコンパイルするところから説明します。ソースの入手は、Wine Development HQダウンロードページから入手します。現時点での説明は、2001年11月8日付けのソース(Wine-20011108.tar.gz)を Redhat Linux 7.1 の上でコンパイルしています。

* ソースの展開とコンパイル

ディスクの空き容量が豊富にあるディレクトリーに、ソースを展開して Wine を作成します。コンパイル終了時点で 310MB 位になります。何も考えずにコンフィグレーションすると /usr/local/bin, /usr/local/lib に Wine をインストールします。スーパーユーザー(root)で作業してください。

    # cd /usr/local/src
    # gzip -dc Wine-20011108.tar.gz | tar xpf -
    # cd wine-20011108
    # ./configure
    # make depend
    # make
    # make install

インストール後に、ldconfig コマンドを実行してシェアードライブラリーを有効にしてくれますが、/etc/ld.so.conf に /usr/local/lib が登録されていないとうまく反映されません。必要なら登録後、ldconfig コマンドを実行してください。

    # edit /etc/ld.so.conf
        /usr/local/lib を追加
    # ldconfig

* Wine の設定と Windowsアプリケーションの実行

先ほどまではスーパーユーザーで作業していましたが、これからは個人環境の設定なので一般ユーザーでログインして作業します。まず、シェルの PATH環境変数に、Wine をインストールした /usr/local/bin が登録されていることを確認します(必要なら追加してください)。

ソースパッケージに含まれる tools/wineinstall を実行することで、コンパイルや Wine の環境をインタラクティブに設定することができるようです。しかし、日本語をうまく表示させるためなど、設定ファイルをそれなりに編集するのでいきなり自分で作りましょう。

    $ cd
    $ mkdir .wine
    $ cp /usr/local/src/wine-20011108/documentation/samples/config .

サンプルの config ファイルをコピーしたら、自分の環境に合うようにいくつか編集します。編集後、ソースパッケージに含まれる tools/winecheck コマンドで設定ファイルをチェックします。

● Windows のシステム環境である C: ドライブの設定:〔Homeディレクトリーに wine ディレクトリーを作って C ドライブとしています〕

  [Drive C]
  "Path"       = "/home/shin/wine"
  "Type"       = "hd"
  "Label"      = "Windows"
  "Filesystem" = "win95"

● Wine と Windows 環境のマッピング:〔ディレクトリーや PATH のマッピング〕

  [wine]
  "Windows"        = "c:\\windows"
  "System"         = "c:\\windows\\system"
  "Temp"           = "c:\\temp"
  "Path"           = "c:\\windows;c:\\windows\\system;e:\\;f:\\"
  "Profile"        = "c:\\windows\\"
  "GraphicsDriver" = "x11drv"
  "ShellLinker"    = "wineshelllink"

● 日本語を表示できるようにフォントのマッピング:〔Redhat 7.1 では -misc-gothic-medium-* がよさそうだったので選びました〕

  [fonts]
  "Resolution"       = "96"
  "Default"          = "-misc-gothic-medium-"
  "DefaultSerif"     = "-misc-gothic-medium-"
  "DefaultSansSerif" = "-misc-gothic-medium-"
  "DefaultFixed"     = "-misc-gothic-medium-"
  "Alias0"           = "Adobe Times, -misc-gothic-medium-"
  "Alias1"           = "Adobe Helvetica, -misc-gothic-medium-"
  "Alias2"           = "Fixed, -misc-gothic-medium-"
  "Alias3"           = "Lucida, -misc-gothic-medium-"
    $ edit config
        上記を踏まえて自分の環境に合うように編集
    $ cd
    $ mkdir wine
    $ mkdir wine/windows
    $ mkdir wine/windows/system
    $ /usr/local/src/wine-20011108/tools/winecheck

config ファイルが出来上がったら、あとは Windows アプリケーションを Linux に転送して実行します。実行方法は、wine コマンドに動かしたいWindowsアプリケーション(.exe)を指定します。Windows 2000 のプログラムを実行するには

    $ wine --winver win2k mspaint

Wine

もっとチューニングは必要かも知れませんが、Redhat 7.1 で動作させたときの config ファイルのサンプルを置いておきます。