wineでie7を動かす

Update: LinuxBSDIEを動かした方はVirtualBoxを使うことをお薦めします。以下のWineベースのより
設定が簡単で快適に使えます。



linuxIE7を使えるようにした。flashもとりあえず動く。開発のためのレンダリングとか機能のチェックには使えそうだ。

環境:Ubuntu 9.04

準備: 最新のwine(1.1.35)をhttp://www.winehq.org/download/debに従ってインストール


$ wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
$ sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/jaunty.list -O /etc/apt/sources.list.d/winehq.list
$ sudo apt-get update
$ sudo apt-get install wine

ドキュメント

基本的に「IE7 on Linux with Wine」の指示に従に従っていく。

Wine DLL Overridesの設定
winecfgでLibrariesタブを開き、次のように設定する


"browseui"="native, builtin"
"comctl32"="builtin"
"crypt32"="native, builtin"
"gdiplus"="native"
"hhctrl.ocx"="native, builtin"
"hlink"="native, builtin"
"iernonce"="native, builtin"
"iexplore.exe"="native, builtin"
"itircl"="native, builtin"
"itss"="native, builtin"
"jscript"="native, builtin"
"mlang"="native, builtin"
"mshtml"="native, builtin"
"msimtf"="native,builtin"
"msxml3"="native,builtin"
"riched20"="native,builtin"
"riched32"="native,builtin"
"secur32"="native, builtin"
"shdoclc"="native, builtin"
"shdocvw"="native, builtin"
"shlwapi"="native, builtin"
"url"="native, builtin"
"urlmon"="native, builtin"
"usp10"="native, builtin"
"uxtheme"="native,builtin"
"wininet"="builtin"
"wintrust"="native, builtin"

この情報は~/.wine/user.regの[Software\\Wine\\DllOverrides]というセクションにあり,これを編集しちゃとうかなと思ったが、このテキストファイルがDBなのか、それともwinecfgがregisteryを編集するのかわからないので、一々手で入力した。

この3つ以外は全て'native, builtin'だ:


"comctl32"="builtin"
"gdiplus"="native"
"wininet"="builtin"
comctl32は winetricksが設定を変えるので、そのときはbuiltinに戻す。

DLL

次のdllsを~/.wine/drive_c/windows/system32/にコピーする。ウインドーズからコピーしろとあるが、以前ie4linuxがインストールのが ~/.wine/drive_c/windows/system32/にあったので、それをコピーした。


msctf.dll
msimtf.dll
uxtheme.dll
xmllite.dll

このコマンドでチェック:


for ff in msctf.dll msimtf.dll uxtheme.dll xmllite.dll; do \
ls -ld ~/.wine/drive_c/windows/system32/$ff; done

winetricks

winetricksで必要なDLLなどを入手。これはウインドーズコンポーネントをダンロードし、wineの設定をしてくれる便利なシェルスクリプトだ。

使い方: $ sh winetricks


comctl32
comctl32.ocx
corefonts
gdiplus
gecko
msls31
msxml3
msxml4
msxml6
riched20
riched30
tahoma

winetricksを走らせた後はwinecfgでcomctl32.dllの設定をbuiltinに戻すのをお忘れなく。



winecfgが/dev/snd/seqをアクセスできないとうるさいので、audioグループに入って黙らせた。

クラッシュ
次のステップはIE7のインスートルだが、途中でクラッシュする。
$ wine IE7-WindowsXP-x86-enu.exe

この指示に従って修理 http://osdir.com/ml/wine-bugs/2009-11/msg01399.html

winetricks でcc580とie7をインストールすれば直るらしい。


$ winetricks cc580
$ winetricks -q ie7

これでこうすると
$ wine 'C:\Program Files\Internet Explorer\iexplore'
IE7が立ち上がった!

しかし、ウェブページだけで、メニューとかURLバーとかのコントロールが一切無い。これでは使えない。でも、ie4linuxのie6よりはかなり速い。

ためしにもとの指示に従ってIE7インストールに再トライ:
$ wine IE7-WindowsXP-x86-enu.exe

全てディフォルト任せで「次」を押していった。膨大なfixmeなどメッセージが出るが、インストーラは無事終了できた。

今度はどうか?
$ wine 'C:\Program Files\Internet Explorer\iexplore'

URLバー付きのIE7が立ち上がった!! ies4linux-latestのie6よりもかなり軽い。

フラッシュ

通常のウェブからのインストールしても何もおこらない。困ったときはwinetricksってことで:
$ sh ./winetricks flash
IEを再起動。

これでフラッシュもとりあえず使える。エミュレータを通しているので、youtubeを楽しむには遅いが、ウェブ開発のテストには使えそうだ。

まとめ

  • 困ったときにはwinetricks

注意: wine-ieはなぜかloopback interfaceが理解できないよう。localhost127.0.0.1も駄目。なので、同じマシン上にあるURLを開くときはイーサネットアドレスを使って開けよう。http://192.168.1.3/foo/bar.htmlという具合に。