2014年3月12日水曜日

VMwareが重すぎるのでなんとかしたメモ


これまでVMware Fusion 6 + Windows 8の上で動作させていたMeta Trader 4が、(Mavericksインストール以降)もう、とにかく遅すぎて苦痛だったのでなんとかしました。同じお悩みを抱えた方の参考になれば、と思い情報を共有します。

といっても、先人により提供された有用な情報がweb上のあちこちにありますので、付加情報を中心に。

まず、Meta Trader 4をVMwareなしで(しかも無料で)マック上で動かす方法はこれ。

  1. 最新のXQuartzをインストール。僕がインストールしたのはv2.7.5。超簡単。説明不要。
  2. 最新のPlayOnMacをインストール。僕がインストールしたのはv4.2.2。超簡単。説明不要。
  3. MT4をインストール。Windowsでインストールしたことがあれば迷うこと無し。インストール後に言語設定をEnglishにしておくのが吉。
  4. THVをインストール。あ、必要なければインストール不要ですけど。MT4のディストリビューションによっては、インストールされたファイルを再配置する必要あり。その場合、ターミナルでゴニョゴニョする必要があるので、ターミナルの扱いになれていない人には勧められません。 
すみません。簡単すぎて、全然説明する必要なかった。

で、とりあえずうまく動作するようになった後の話。…ここから先が少しは新鮮な情報かも。

最初にインストールした(マックの)アカウントとは別のアカウントでもMT4 on PlayOnMacを使いたい場合にどうするか。つまり、同じMT4環境を妻にも使わせたいが、自分のマックのアカウントのパスワードを教えたくはない、というような場合。

こういう場合、THVをインストールしたり、いろいろ独自の設定を加えて使いやすくした環境を、まるごとコピーしてしまえばよいのです。

まず、PlayOnMac自体を、インストールしたユーザ以外のアカウントからも使えるようにする。他のバージョンではどうなっているか知らないけれど、v4.2.2の場合は、これをしないとPlayOnMacが起動に失敗する。

$ chmod -R a+rx /Applications/PlayOnMac.app/Contents/Frameworks/Python.framework

僕の場合これだけでうまくいったけど、それでもうまく行かない場合は、コマンドラインからPlayOnMacを起動(↓)してやると、エラーメッセージなんかが読めて問題解決が期待できる。かも。

$ cd /Applications/PlayOnMac.app/Contents/MacOS
$ ./playonmac



で、いよいよ、MT4環境を他のアカウント用にもコピーする方法。
ここでは、自分のアカウントがuserA、追加するアカウントがuserBと仮定。userBは制限付きアカウントでOK。
ちなみに、それぞれのマックアカウントでMT4を起動して同時に同じMT4アカウントを使用しても問題なさそうです(責任はとれませんが)。

userAアカウントでは全てのセットアップが完了していて、PlayOnMacのMT4のための仮想ドライブのパスは

/Users/userA/Library/PlayOnMac/wineprefix/vDriveForMT4

であると仮定して話を進めます。

別のアカウントでログインして、PlayOnMacを起動してMT4をインストールする。仮想ドライブのパスは

/Users/userB/Library/PlayOnMac/wineprefix/vDriveForMT4

にした、と仮定。

そこまで済んだら、それぞれのMT4 on PlayOnMacを終了させておく。

ここから先は、ターミナルでの操作。繰り返しますが、ターミナルでの操作に自信のない人にはおすすめしません。というか、僕は責任とれないので、全て自己責任でどうぞ。

あ、そうそう、ここではFXCMのMT4を使っているので、他社の提供するMT4の場合はパスおよびディレクトリ名を実際のものに置き換えて考える必要があるでしょうね、もちろん。

PlayOnMacの仮想ドライブ内のMT4フォルダを/tmpにコピーしてパーミションを変更。

userA $ cd ~
userA $ cd "Library/PlayOnMac/wineprefix/vDriveForMT4/drive_c/Program Files"
userA $ cp -r "FXCM MetaTrader 4" /tmp/
userA $ chmod -R a+rx "/tmp/FXCM MetaTrader 4"


userBのPlayOnMacの仮想ドライブ内のMT4フォルダをバックアップ(名前変更)した上で、/tmp以下からMT4ディレクトリをコピーしてくる。

userB $ cd ~
userB $ cd "Library/PlayOnMac/wineprefix/vDriveForMT4/drive_c/Program Files"
userB $ mv "FXCM MetaTrader 4" "_FXCM MetaTrader 4_"
userB $ cp -r "/tmp/FXCM MetaTrader 4" ./


ここまでできたら起動確認。

うまくいったら、バックアップしておいたフォルダを削除

userA $ rm -rf "/tmp/FXCM MetaTrader 4"
userB $ cd ~

userB $ cd "Library/PlayOnMac/wineprefix/vDriveForMT4/drive_c/Program Files"
userB $ rm -rf "_FXCM MetaTrader 4_"


ところで、我が家では、MT4をMacBookAirで動作させておき、それをiMac(ちょっと古くて性能はへぼいが画面は大きくて快適)からリモート操作する、という運用をしている。初代アルミiMacでOSX Mavericks + VMware Fusion 6 + Windows 8 + MT4 + THVは動作が重すぎて、どうしようもなくなってしまったのだ。

ついでなので、この運用についても情報共有を。

Apple Remote Desktopという、素敵な、しかし現時点で7800円もする、Apple謹製のソフトがあるわけだけど…。高いよ!

というわけで、VNCという枯れた技術を使うことにします。

MacBookAir側でVNCサーバの設定:「システム環境設定>共有」で「リモートマネジメント」にチェックを入れ、「コンピュータ設定…」内のチェックボックスを3つともチェックし、パスワードを設定しておく。アクセスを許可するユーザを限定するのが、まあ、普通はよいでしょう。

iMac側でVNCクライアントの設定:Chicken ( http://sourceforge.net/projects/chicken/ )をインストールする。設定は難しくないのでそれ以上は省略。ちなみに、僕はここ数年JollysFastVNC (Home edition)という有償VNCクライアントを使っていたのだけれど、JollysFastではOSXの提供するVNCには接続ができなかった。どういうわけか。

以上です。説明上、MacBookAirだiMacだと書いていますが、機種は関係ないです。Mavericks(あるいは最近のOSX)が入ったマック同士が同じサブネットにつながっていれば同じことができるはず。