VultrとAnyDeskによるリモートデスクトップ環境でWindowsアプリを動かす(3)


VultrとAnyDeskによるリモートデスクトップ環境でWindowsアプリを動かす(2)
の続きの記事です。

前回は、VultrのVPSにAnyDeskを入れて、リモートデスクトップとして使うところまでを説明しました。

今回はVPSにwineというソフトをインストールして、当初の目的であった、MT4やMT5といったWindowsアプリを動かしてみます。

デスクトップの日本語化

インストールしたデスクトップは英語版です。MT4やMT5も、EAを動かすだけだから英語版でよいという場合、デスクトップも英語版で構いません。その場合、このセクションの説明は飛ばしてください。

Language Support

デスクトップを日本語化する場合、アプリ一覧から「Language Support」を実行してください。インストール状況をチェックして、必要があればインストールを促す画面が出ます。その後、

の画面で、「Install/Remove Langugaes...」のボタンを押すと、インストールしたい言語のリストが表示されます。ここで、Japaneseにチェックをして、「Apply」ボタンを押すと、フォントなどのダウンロードが始まります。

数分程度時間がかかりますが、いつまでも終わらない場合はフリーズした可能性があるので、サーバーを再起動してください。

日本語のインストールが完了すると、「Language for menus and windows:」のリストの一番下に「日本語」と表示されています。

この「日本語」のバーをマウスでドラッグしてリストの一番上までもっていきます。そして「Apply System-Wide」のボタンを押すと、デスクトップ全体が日本語化されます。

さらに「Regional Formats」のタブでも「日本語」を選択して「Apply System-Wide」のボタンを押すと、時刻の表示などが日本語になります。

これで一旦サーバーを再起動すると、ログインの画面から日本語になっていると思います。なお、日本語化した直後のログイン時に「Documents」とか「Downloads」のような標準フォルダー名を「ドキュメント」とか「ダウンロード」に更新しますか?という画面が表示されます。これは好みの問題ですが、日本語の入力は面倒なので、更新せずに「古い名前のままにする」を選択することをお勧めします。

TimeZone

もし、デスクトップの一番上に表示されている時刻が日本時間になっていない場合、タイムゾーンの設定をする必要があります。

アプリ一覧から「設定」を実行し、一番下の「詳細」から「日付と時刻」を選択します。この画面で右上の「ロック解除」ボタンを押し、パスワードを入力すると、設定を変更することができます。

ここで、タイムゾーンをJSTに設定すると、日本時間になります。

wineのインストール

wineは、WindowsアプリをLinux上で動かすための定番ソフトウェアです。ウェブサイトはこちらです。
https://www.winehq.org/

wineのインストール方法については、ネットで検索すると色々出てくるのですが、ここでは、以下のウェブサイトに掲載されている方法でインストールしてみます。
https://wiki.winehq.org/Ubuntu

VPSのOSは64ビットですが、MT4が32ビットアプリなので、以下のように32ビットアプリも実行できるようにします。

$ sudo dpkg --add-architecture i386

レポジトリキーをダウンロードして、追加します。

$ wget -nc https://dl.winehq.org/wine-builds/winehq.key
$ sudo apt-key add winehq.key

ubuntu18.04用のレポジトリを追加します。

$ sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'

パッケージを更新して、wineのstable-branchをインストールします。

$ sudo apt update
$ sudo apt install --install-recommends winehq-stable

これでwineのインストールは完了ですが、Windowsアプリを実行する前に、ユーザー毎にwineの初期設定を行う必要があります。

$ winecfg

を実行すると、いくつかインストールを促す画面が表示されます。それらをインストールすると、最後にwine自体の設定画面が表示されます。最初は特に設定を変える必要はないでしょう。(WindowsバージョンをWindows 10にするくらい?)

これで、ユーザーのホームディレクトリの下の.wineというフォルダにWindowsの環境が作成されました。.wineの下のdrive_cがWindowsPCのCドライブだと考えればよいでしょう。

Windowsアプリを動かす

Windowsアプリを動かすには、

$ wine Windows実行ファイル名

のように、wine をつけて実行するだけです。

ただ、デスクトップを日本語版にしても、wineのWindows環境には日本語フォントが入っていません。なので、このまま日本語を含むWindowsアプリを実行すると、日本語の部分が豆腐になってしまい、読むことができません。

デスクトップが英語版のままであれば、このままWindowsアプリを実行して問題ありませんが、日本語版の場合、次のように日本語フォントをインストールする必要があります。

日本語フォントのインストール

wineへフォントをインストールするには、winetricksというソフトを利用します。まず、以下のようにwinetricksをインストールします。

$ sudo apt install winetricks

winetricksは、wineのさらに細かい設定を可能にするソフトですが、ここでは、日本語フォントをインストールするために、

$ winetricks cjkfonts

と実行します。これで、~/.wine/drive_c/windows/Fonts/の下に日本語フォントがインストールされます。

MT4, MT5のインストール

ここまでできたら、いよいよ当初の目的であったMT4、MT5をインストールしてみましょう。それぞれのインストールプログラムは、VPS上でダウンロードしてもいいですし、ローカルPCにあるファイルをAnyDeskからアップロードしてもいいでしょう。

例えば、MT4のインストールファイルがoanda4setup.exe、MT5のインストールファイルがoanda5setup.exeだとすると、

$ wine oanda4setup.exe
$ wine oanda5setup.exe

で、インストールができます。

MT4, MT5を使う上での注意点

MT4、MT5インストール後、ちゃんと画面は表示されるので、問題ないように見えます。ただし、wineはWindowsアプリのすべての機能が動作することを保証するものではありません。

筆者は、VPS上ではMT4、MT5のEAを動作させるだけなのですが、以下の不具合がありました。

  • EAの動作状況を表すアイコンが表示されない

EAをチャートに挿入すると、チャートの右上に、EAが売買可能かどうかを表すフェイスマークのアイコンが表示されるはずですが、これが常に豆腐になってしまい、区別できません。

これは、wingdingsのフォントが入っていないためです。

Windowsには、wingding.ttfというフォントが標準で入っているので、これを入れればいいのでしょうが、ライセンスの関係でほかのOSにコピーしてはいけないのではないかと思います。ただネットで探すと、Free font としてダウロードできたりもします。各自の責任でもって対応してもらえればと思います。

  • チャートに挿入したEAの設定が消えてしまう

チャートにEAを挿入すると、次にMT4を起動したときにもEAが挿入されているはずです。しかし、wine上のMT4では、たまにその設定が消えてしまうことがあります。チャートにEAを挿入した情報は、MT4のデータフォルダの下のprofiles\default\chart01.chrなどの設定ファイルに記録されます。おそらく、MT4終了時にこのファイルが更新されないか、書き換わってしまっているのだと思います。(MT4を右上のxボタンで終了させたときに起こるようです。)

しかたないので、この設定ファイルが正常にできていることを確認した上で、書き換えられないように、リードオンリーのパーミッションをかけて対応しました。

$ chmod 444 chart01.chr

なお、444664に変えれば、元の書き込み可能なパーミッションに戻せます。

ただし、この方法では、EAの設定の変更が簡単にできなくなるという問題があります。まあ、リアル口座で運用しているEAの設定は簡単に変更されては困るので、これくらいの不便さがあった方がいいかもしれません。

そのほかにも、不具合はあるかと思います。なので、この記事の最初におことわりしたように、この記事をまねして実行した結果について責任は負えません。各自の責任のもと、お試しください。