[Momonga-devel.ja:02019] wine-20030709
- From: Masayuki SANO <sano@xxxxxxxxxxxxxxxxxxx>
- Date: Mon, 11 Aug 2003 23:43:49 +0900 (JST)
nosanosa です。
Linux上でWindowsアプリケーションを実行できるWine(http://www.winehq.com);
を20030709にアップデートしてコミットしました。
今までのパッケージに入っていた設定ファイルwine.conf は古いフォーマット
で、最近のWineでは動かないものだったので、新しい設定ファイルのフォーマッ
トで書き換えて、Momongaに合わせて少しカスタマイズしました。まだ設定不
足なところも(かなり)多いですが、少しはましに動くようになっています。
また2chのスレッドで出ていたXIMでの日本語入力を可能にするパッチをあてて
いるのでkinputで日本語入力できるはずです。
以下、Wineを使ってWindowsアプリケーションを動かすための方法の簡単な解
説です。
・Wineのセットアップ
Wineを使うにはユーザーが自分で設定ファイル~/.wine/configを作って、
各種設定、とくにWineがWindows System Directoryとして認識するディレク
トリ(fake windows dir)を指定してやる必要があります。この作業を行う
(とても)単純な設定スクリプトをwine-setupとして入れておきました。Wine
を起動する前に
$ wine-setup local <fake windows system dirのfullpath>
として、設定ファイル~/.wine/configとfake windows dir(デフォルトでは
${HOME}/wine)を作ってください。このときWineはfake windows dir が書き
込み許可があることを前提とするので、書き込み許可のあるディレクトリを
指定してください。(これは~/.wine/configの[Drive C]セクションの"Path"
エントリに保存されます。)
・ アプリケーションの起動
この後、たとえばwindowsアプリケーションの foo.exe を実行するためには
$ wine /home/hoge/foo.exe &
などのように、wine に続けて実行バイナリのフルパスを指定します。
(~/.wine/configの[wine]セクションのPath環境変数に指定されたディレクト
リにおかれたファイルは名前だけで $ wine foo の様に起動できます。)
~/.wine/configでいろいろな設定ができますが、設定の仕方の詳細な
情報は以下のドキュメントがかなり詳しいので参考にしてください
Wine User Guide http://www.winehq.com/Docs/wine-user/
・Windows NativeなDLLの利用
WineはNativeなWindowsのファイルがなくても動かすことができますが、
NativeなWindowsのDLLを使うことも出来ます。
たとえばDLLが不完全であるというようなエラーが出ることが多々あります。
$ wine ./explorer.exe &
err:module:import_dll No implementation for SHELL32.dll.747 imported from I:\WINDOWS\explorer.exe, setting to 0xdeadbeef
こんな感じになったときはwineが実装しているSHELL32.dllが不十分な事
を意味しています。このような場合に、WindowsのNativeなSHELL32.dllを持っ
ている場合には、DLLの読み込む優先順位を設定する ~/.wine/configの
[DllOverrides]セクションの
"shell32" = "builtin, native"
を
"shell32" = "native, builtin"
のように変えると、NativeなDLLを先に読んでくれる様になり、これでうまく行く
こともあります。
また次のようにDLLが無いというエラーがでることがあります。
$ wine ./wordpad.exe
err:module:import_dll Module (file) MFC42u.DLL (which is needed by I:\Program Files\Windows NT\Accessories\wordpad.exe) not found
このようなときはMFC42u.DLLをさがしてきてアプリケーションと同じディ
レクトリやfakewindows dirのwindows/systemなどに入れるとうまくいく場
合があります。
実際の利用において、基本的にNativeなDLLを最大限に利用したいならば
Windows Patition(/mnt/winなど)のwindows/{system,system32}の内容をfake
windows directoryのwine/windows/{system,system32}にコピーまたはリンク
するのがよいと思います。
(~/.wine/configの[Drive C]セクションで
"Path" = "/mnt/win"
などとして直接Nativeなパーティションを指定する方法もありますが、書き込
み出来ることが必要なのでWindowsXPのNTFS5だと無理みたい(?)です。またレ
ジストリとかの書き込みもするので危険でおすすめできません。)
・フォントについて
windows/Fontsディレクトリをリンクまたはコピーすると、MS Gothicとかを使
うようになりますが、どうも文字が化けたりするのでしない方がいいようです。
windows/Fontsディレクトリがない場合、マッピングの設定でKochi Gothicな
どが使われます。(ちなみにフォントはfreetype2によってアンチエイリアスさ
れます)
・現在の主な(多分、設定上の?)不具合など
インストーラ(InstallShield)がうまく動かないようです。以前は動いていた
ように思うんですが。なので今のところ、インストーラでインストールするよ
うなものはWindows上でインストールしてから、wineで実行ファイルを指定し
て起動するしかありません。これは多分設定の問題だと思います。
印刷ができるかどうかは未だ確認してません。
kinput2で変換中の文字が消えてしまいます。確定すると現れます。
動くと言われているアプリケーションでも動かないことが多々あります ^^;
長くなったのでWineを試してみたいくつかの結果は次の投稿で書きます。