2008年06月22日

MacOSXにWine1.0のお試しインストール

UNIX系OSでWindowsのアプリケーションを動作させるためのWineのVer1.0がリリースされたので試しに入れてみました。
MacOS向けには、「CrossOver Mac」もあるわけですが、どうせ同じコードがベースなのだから、まずは無料のWineかなと。
(初音ミクもサポートしているらしいので、今後「CrossOver Mac」は来る気がしますけどね。)


環境:
OS:MacOSX 10.5.3
CPU:Intel Core 2 Duo

公式サイト:
http://www.winehq.org/
参考にしたサイト:
http://mbsupport.dip.jp/bk/2004/sub/071203.htm


1.ダウンロード
公式サイトの左メニューから、
Download→Get Wine Now→sourceforge.net(Wine Source Downloads)→1.0→ wine-1.0.tar.bz2
を選択してダウンロードします。


2.ファイルの展開
Terminalで"wine-1.0.tar.bz2"をダウンロードしたディレクトリに移動します。
以下のコマンドでファイルを解凍します。
$ tar xvjf wine-1.0.tar.bz2

展開されたディレクトリに移動します。
$ cd wine-1.0


3. インストール
ここからちと長いです。

$ ./configure
を実行すると何やらエラーが・・・。

configure: error: X development files not found. Wine will be built
without X support, which probably isn't what you want. You will need to install
development packages of Xlib/Xfree86 at the very least.
Use the --without-x option if you really want this.

X11関連で怒られている模様。

外せば通るのかなという事で、optionで外すと通ります。
ただ、外したままだとX11が使えないので、パスを通します。
X11が通っても今度はFreeTypeで怒られます。
なので、ダウンロードしてきて、以下の通りにインストールしました。

FreeTypeのインストール
$ tar xzf freetype-2.3.6.tar.gz
$ cd freetype-2.3.6
$ ./configure
$ make
$ su root
# make install


で、configureすると、

configure: libhal development files not found, no dynamic device support.
configure: libsane development files not found, scanners won't be supported.
configure: libgphoto2 development files not found, digital cameras won't be supported.
configure: liblcms development files not found, Color Management won't be supported.
configure: libcapi20 development files not found, ISDN won't be supported.
configure: fontconfig development files not found, fontconfig won't be supported.

configure: WARNING: libjpeg development files not found, JPEG won't be supported.

configure: WARNING: libpng development files not found, PNG won't be supported.

configure: Finished. Do 'make depend && make' to compile Wine.


となって、libjpegとlibpngのパスも通っていないので、通します。
入っていなければついでにインストールもします。
他のはとりあえず無視します。
--withoutすればワーニングは出なくなります。


結果的に以下のコマンドを入れました。

$ ./configure LDFLAGS='-L/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib -L/sw/lib' CFLAGS='-I/sw/include -I/usr/local/include/freetype2/freetype/'

※いろいろ試してたので、必要ないものもあるかも。。。

次にmakeです。
ここでもはまりましたよ。。。


$ make

結果、

./crtdll.spec:44: external symbol 'CRTDLL__basemajor_dll' is not a function
./crtdll.spec:45: external symbol 'CRTDLL__baseminor_dll' is not a function
./crtdll.spec:46: external symbol 'CRTDLL__baseversion_dll' is not a function
./crtdll.spec:66: external symbol 'CRTDLL__cpumode_dll' is not a function
./crtdll.spec:243: external symbol 'CRTDLL__osmajor_dll' is not a function
./crtdll.spec:244: external symbol 'CRTDLL__osminor_dll' is not a function
./crtdll.spec:245: external symbol 'CRTDLL__osmode_dll' is not a function
./crtdll.spec:247: external symbol 'CRTDLL__osversion_dll' is not a function
winegcc: ../../tools/winebuild/winebuild failed
make[2]: *** [crtdll.dll.so] Error 2
make[1]: *** [crtdll] Error 2
make: *** [dlls] Error 2

エラーが出ちゃいました。。。
調べてみると、ちゃんと"crtdll_main.c"で定義されているようなんですけどね。。。

ネットで調べてみると、
http://d.hatena.ne.jp/obys/20080618/1213799201
という記事が見つかりました。

Darwineというのがあるんですね・・・。
http://www.kronenberg.org/darwine/
これだとsrcいらないみたいです。
しかし、今回の目的はsrcからのインストールです。


試しにdlls/crtdll/crtdll.specを編集してみます。
※ちゃんとファイルのバックアップとってやってますよ。

以下の行を削除しました。
@ extern _basemajor_dll CRTDLL__basemajor_dll
@ extern _baseminor_dll CRTDLL__baseminor_dll
@ extern _baseversion_dll CRTDLL__baseversion_dll
@ extern _cpumode_dll CRTDLL__cpumode_dll
@ extern _osmajor_dll CRTDLL__osmajor_dll
@ extern _osminor_dll CRTDLL__osminor_dll
@ extern _osmode_dll CRTDLL__osmode_dll
@ extern _osversion_dll CRTDLL__osversion_dll

で、makeするとここは通過です。
が、またしてもエラー・・・。

./msvcrt.spec:75: external symbol 'MSVCRT__HUGE' is not a function
./msvcrt.spec:87: external symbol 'MSVCRT___argc' is not a function
./msvcrt.spec:88: external symbol 'MSVCRT___argv' is not a function
./msvcrt.spec:104: external symbol 'MSVCRT___lc_codepage' is not a function
./msvcrt.spec:106: external symbol 'MSVCRT___lc_collate_cp' is not a function
./msvcrt.spec:107: external symbol 'MSVCRT___lc_handle' is not a function
./msvcrt.spec:142: external symbol 'MSVCRT___setlc_active' is not a function
./msvcrt.spec:149: external symbol 'MSVCRT___unguarded_readlc_active' is not a function
./msvcrt.spec:150: external symbol 'MSVCRT___wargv' is not a function
./msvcrt.spec:155: external symbol 'MSVCRT__acmdln' is not a function
./msvcrt.spec:198: external symbol 'MSVCRT__commode' is not a function
./msvcrt.spec:248: external symbol 'MSVCRT__fmode' is not a function
./msvcrt.spec:295: external symbol 'MSVCRT__iob' is not a function
./msvcrt.spec:362: external symbol 'MSVCRT_mbctype' is not a function
./msvcrt.spec:415: external symbol 'MSVCRT__osver' is not a function
./msvcrt.spec:510: external symbol 'MSVCRT__wcmdln' is not a function
./msvcrt.spec:545: external symbol 'MSVCRT__winmajor' is not a function
./msvcrt.spec:546: external symbol 'MSVCRT__winminor' is not a function
./msvcrt.spec:547: external symbol 'MSVCRT__winver' is not a function
winegcc: ../../tools/winebuild/winebuild failed
make[2]: *** [msvcrt.dll.so] Error 2
make[1]: *** [msvcrt] Error 2
make: *** [dlls] Error 2


同じように、dlls/crtdll/msvcrt.specを編集してみます。
以下を削除します。

@ extern _HUGE MSVCRT__HUGE
@ extern __argc MSVCRT___argc
@ extern __argv MSVCRT___argv
@ extern __lc_codepage MSVCRT___lc_codepage
@ extern __lc_collate_cp MSVCRT___lc_collate_cp
@ extern __lc_handle MSVCRT___lc_handle
@ extern __setlc_active MSVCRT___setlc_active
@ extern __unguarded_readlc_active MSVCRT___unguarded_readlc_active
@ extern __wargv MSVCRT___wargv
@ extern _acmdln MSVCRT__acmdln
@ extern _commode MSVCRT__commode
@ extern _fmode MSVCRT__fmode
@ extern _iob MSVCRT__iob
@ extern _mbctype MSVCRT_mbctype
@ extern _osver MSVCRT__osver
@ extern _wcmdln MSVCRT__wcmdln
@ extern _winmajor MSVCRT__winmajor
@ extern _winminor MSVCRT__winminor
@ extern _winver MSVCRT__winver


結果・・・

./ntoskrnl.exe.spec:606: external symbol 'KeServiceDescriptorTable' is not a function
./ntoskrnl.exe.spec:625: external symbol 'KeTickCount' is not a function
winegcc: ../../tools/winebuild/winebuild failed
make[2]: *** [ntoskrnl.exe.so] Error 2
make[1]: *** [ntoskrnl.exe] Error 2
make: *** [dlls] Error 2

もうちょっとですかね。
同じように、dlls/crtdll/ntoskrnl.exe.specを編集します。

以下を削除します。
@ extern KeServiceDescriptorTable
@ extern KeTickCount

おおー、ようやく通りました。
ここまで来て、最初から全部のコマンドをまとめると、以下のようになります。

$ ./configure LDFLAGS='-L/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib -L/sw/lib' CFLAGS='-I/sw/include -I/usr/local/include/freetype2/freetype/'
$ make depend
$ make
$ su root
#make install

ここまでで、インストールは完了です。
ちなみに、
$ ./configure --without-x
しちゃった場合、インストールは出来るんですが、実行しても以下のエラーが出ます。

Application tried to create a window, but no driver could be loaded.
The X11 driver is missing. Check your build!
Application tried to create a window, but no driver could be loaded.
The X11 driver is missing. Check your build!


アプリケーションによっては日本語表示するには、フォントを入れておく必要があるようです。

このサイトを参考にフォントを入れました。
http://journal.mycom.co.jp/column/osx/275/index.html

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

Windows用のディレクトリは、
"/Users/******/.wine/drive_c/"
以下に通常のWindowsと同様のディレクトリ構成として格納されるようです。


インストールも完了したので、ひぐらしを動かしてみました。
が、インストールexeは動かないですね。。。

体験版のexeは起動しました。
画像が証拠写真です。
ちゃんと音も鳴っていました。

wine.jpg
posted by はやむー at 18:32| Comment(1) | TrackBack(0) | Macなお話-実践編 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
Whoa! This blog looks just like my old one! It is on a completely different subject but it has pretty much exactly the same web page layout and design. Wonderful choice of colours!
Posted by 情趣用品 at 2013年07月26日 16:02
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/101292321

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。