いけむランド

はてダからやってきました

cygwin on wine on macosx

誰得な試みをしてみた。


まずは MacPorts から Wine をインストールする。依存ライブラリをユニバーサルバイナリにしておく必要がある。*1

% sudo port -d install wine-devel

次に cygwinsetup.exe を wine で起動する。

% wine setup.exe


cygwin setup.exe on wine on macosx


Windows にインストールする場合と同じように設定していけば問題ない。*2

cygwin のルートディレクトリはデフォルトのままならば、macosx から見て、~/.wine/drive_c/cygwin となる。

インストールが終わったら cygwin を起動する前に環境変数の設定をしておく。Windows のように「マイコンピュータ」を右クリック→「プロパティ」からは辿れないため、wine に含まれている regedit で直接レジストリをいじることにする。

% regedit

環境変数は HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment にある。*3

ちなみに手元の環境では編集のダイアログでディレクトリセパレータである backslash を入力しようとしたら、yen mark になってしまったため、仕方なくコピペで入力した。


regedit on wine on macosx


HOME を macosx と共用にするために C:\cygwin\home\username に設定し、シンボリックリンクmacosx のホームを辿れるようにした。

% ln -s ~/ ~/.wine/drive_c/cygwin/home/username

いよいよ mintty を起動してみる。

% wine .wine/drive_c/cygwin/bin/mintty.exe


mintty on wine on macosx


ls とか lv は動いているように見える。しかし、cp/rm/mv でファイルを操作しようとすると、

rm: cannot remove `.bash_history': Invalid request code

と何故か失敗したり、file でファイルの種類を調べようとすると、

file: cannot map `/usr/share/file/magic.mgc' (Cannot allocate memory)

と動いてくれなかったりするので、まだまだ cygwin でいろいろいじり倒すには不安定 & 機能不足なように思われる。


[追記] mintty の中の人に Twitter で紹介していただきました。

Screenshot of mintty on Cygwin on Wine on MacOS: http://www.flickr.com/photos/blowofmercy/4374852763/ (Thanks to @fd0)

*1:ユニバーサルバイナリになってない場合はユニバーサルバイナリで再ビルドは必要である旨のエラーとそのためのコマンドが表示されるため、その指示に従えば良い。

*2:厳密に言うと、インストールはできるが、ファイル展開時にロックがかかって上書きできない旨のダイアログが大量にポップアップしたり、/etc/postinstall/*.sh が実行できずに setup.exe 自体が強制終了したりする。

*3:http://bitwalk.blogspot.com/2008/11/lets-wine_08.html