Linux上にMT5をインストールする時に困った64bit, 32bit問題

VPSでWindowsサーバーを借りるとスペックが低くても価格がとても高い。

そこで、私はLinux(Ubuntu)サーバーを借り、そこにWINEをインストールし、MT4を運用している。

ただ、最近はMT5にシフトする動きが加速しているため、今回Linux上にMT5をインストールすることにした。

すでにLinux(Ubuntu)上にはWineがインストールされているが問題はMT4を動かすために32bit様に設定されていることだ。

初めからMT4とMT5を動かす事を考えれば、そのような方法を採るが今回は後から64bit版のMT5を運ストールするため、MetaQuoats社のLinuxへのMT5インストール記事を参考に実行した。
https://www.mql5.com/ja/articles/625

しかし、既に32bit版がインストールされているため、エラーが出てしまった。
(エラーは、他のwine関係が全てインストールまたはアップデートされた後、一番最後)

アプリケーションを開始できません。もしくは、指定したファイルにアプリケーションが関連付けられていません。
ShellExecuteEx が失敗: Z:\home\user\mt5setup.exe の EXE フォーマットが不正です。

始め悩んだが、色々調べた結果

32bit版のwineがインストールされている場所に64bit版をインストールしようとしたので、インストールファイル mt5setup.exe が起動できなかった事に問題があった。

mt4をインストールしたとき、確かに苦労して32bit化したが、大分昔の話だったためすっかり忘れていた。

そこで、最近流行のAI Searchエンジン Perplexity で調べて見た。
https://perplexity.ai

参考までに、Perplexityの良いところは

  • chatGPTへの質問の様に調べたいことを聞いてみる
  • 世界中のwebから検索結果を集めて、最適な答えとして返してくれる
  • 結果、最短時間で問題が解決する

ということだ。

今回は、上記のエラーメッセージを入力し、解決への糸口を導き出した。
Googleで通常の検索をしている場合は、自分が様々なサイトを見て、判断しなければならないので非常に時間がかかる。

解答結果はこんな感じだ。

この結果を見て、32bit版と64bit版で問題が発生したことに気が付いた。

その後なんどか Parplexity とやり取りを行い、
「wineをすでに32bit版で構築しているが、その後64bit版も使えるようにするには?」という質問を行った。どうやら環境の共存は可能だった。

まずは「新しい64ビットプレフィックスの作成」を行う

WINEARCH=win64 WINEPREFIX=/home/hidex/wine64 winecfg

64ビットプレフィックスでのアプリケーションのインストール:
これで64bit版を使う環境が整う(setup.exeは立ち上げるアプリ名に置き換える)

WINEPREFIX=~/wine64 wine setup.exe

これで、64bit版のアプリを起動する
64ビットプレフィックスでのアプリケーションの実行:
(application.exe は 立ち上げるアプリ名に置き換える)

WINEPREFIX=~/wine64 wine path/to/application.exe

しかし、エラーが出る

アプリケーションを開始できません。もしくは、指定したファイルにアプリケーションが関連付けられていません。
ShellExecuteEx が失敗: Z:\home\hidex\mt5setup.exe の EXE フォーマットが不正です。

ここが凄く悩んだが、よく考えてみると上にある「新しい64ビットプレフィックスの作成」の時、

WINEARCH=win64 WINEPREFIX=/home/hidex/wine64 winecfg

と入力していた。
つまり、インストーラーファイルも64bit版だと考えなければならなかった。
これに気が付けば、MT5のインストールはこう書くべきだった。

WINEARCH=win64 WINEPREFIX=/home/user/wine64 wine setup.exe

これにより、無事インストールが完了した。

ただし、文字化けは別問題。文字化け問題の解決は次回に。

コメント

タイトルとURLをコピーしました