先月、イー・モバイルのデータカード端末「D02OP」を入手しようとしていたのですが、突然の販売停止。MacBook ProのExpressCardスロット有効活用策として、価格も手頃でベストなデバイスだったのですが。そして先日、代替品としてHuawei Technologies製「D03HW」が登場。最大7.2Mbpsですし、1カ月待った甲斐があろうというものです。これで一気に通信エリアが広がれば……。

さて、第273回第274回に続き、今回もお題は「Wine」。ついにバージョン1.0のリリース候補版 (RC1) も公開、盛り上がってきたところだが、ひとまずこれにて終了。基本的な約束事や、誰もがつまずきそうな事柄をピックアップしてお届けしよう。

Wineのお約束

第273回~第274回は"とりあえず"動かすことに終始したという反省を踏まえ、この項ではWineの基本的な確認事項を整理しておきたい。正式リリースに向けコードフリーズされたいま、当面大規模な仕様変更はないはずなので、今後Wineを活用するうえでの参考になるはずだ。

1. 使用領域は「~/.wine」以下

最初にWineを起動すると、ユーザのホームフォルダに「.wine」ディレクトリ (~/.wine) が作成される。この領域に「C:」に相当する仮想ドライブやレジストリファイルが作成され、インストールしたアプリケーションもここに保存される。なお、先頭が「.」で始まるファイル / フォルダはFinder上には表示されないので念のため。

Windowsのレジストリに相当するファイルも、この~/.wine以下に保存される。レジストリはWine付属のレジストリエディタ (regedit) 、またはwinecfgで編集できるが、内容はプレインテキストのため一般的なテキストエディタで編集することも可能だ。

[.wine]-+-[drive_c]-+-[windows]  … システム領域
        |                +-[Program Files]     … アプリケーション領域
        |
        +-[dosdevices]-+-<c:>  … ~/.wine/drive_cへのSymLink
        |                +-<z:>  … ~/.wine/drive_zへのSymLink
        +- system.reg        … レジストリファイル (HKEY_LOCAL_MACHINE)
        +- user.reg           … 同上 (HKEY_CURRENT_USER)
        +- userdef.reg       … 同上 (HKEY_USERS\.Default)

2. システム領域はWindowsに準ずる

上記のディレクトリ構成さえわかれば、あとはかんたん。基本的にはWindowsのディレクトリ構成に準じているため、DLLを手動でコピーする場合には「~/.wine/drive_c/windows/system32」(パスが通ったディレクトリでなければならない)、フォントを追加する場合には「~/.wine/drive_c/windows/Fonts/」といった具合だ。アプリケーションは「~/.wine/drive_c/windows/Program Files」以下にインストールされるので、エイリアスを定義するなりSymLinkを定義するなりして、起動しやすくしておこう。

3. UI用フォントは変更可能

現行バージョンのWineをOS Xにインストールすると、OS X固有のフォント用ディレクトリ (ex. /Library/Fonts/System/Library/Fonts) が自動的に検索され、TrueTypeやOpenTypeなどのフォントが利用可能になる。

ただし、メニューバーなどUIで使用するフォントは「~/.wine/drive_c/windows/Fonts/」へ保存 (SymLinkも可) するようにしよう。たとえば、さざなみフォントを利用するには、以下のとおり作業すればOKだ。

$ tar xjf sazanami-20040629.tar.bz2
$ cp sazanami-20040629/*.ttf ~/.wine/drive_c/windows/Fonts/

さざなみフォントをUI用フォントに使用したところ

4. アプリケーションの文字化けに対処する

現行バージョンのWineではかなり解消されたが、依然として"文字化け"が発生するWindowsアプリは少なくない。そしてその原因の多くが、Wineで未定義のフォント (Windowsには標準装備) を参照している、というものだ。つまり、参照されているフォントを実際に用意するか、適当なフォントで代替するよう定義すれば、文字化けは解消されるということになる。

Wineでは、システム上にあるフォントをレジストリ (~/.wine/system.reg) に書き出すほか、フォント置換テーブルを「[Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]」項に用意しているので、フォント定義はここで行えばOK。たとえば、以下の行をフォント置換テーブルに追加すれば、画像管理 / 共有ソフト「Picasa」の文字化け問題も解消される。

[Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"MS Sans Serif"="MS UI Gothic"

あのPicasa (左) も、フォント定義を加えれば文字化け解消 (右)