たなかこういちの資料室

システム開発に携わる筆者があれこれ試したことや学んだことについてのまとめ

A5:SQL Mk-2をWineを用いてmacOS Mojavaで動かした記録

A5:SQL Mk-2とは?
 
A5:SQL Mk-2は、ERD描画、DDL生成、DBインスタンスからのDDLリバース生成ツールとして、SIer系お仕事では定番とされているWindowsアプリである。
 
A5:SQL Mk-2公式サイト:
 
これをmacOSで動かしたい。
 
■ Wineとは?
 
WindowsアプリをmacOS上で動かすには、、まずはVMwareやVirtualBoxなどのVM環境を用意して、Windows OSを動かす必要があります・・・と思っていたが、「Windows APIコールをPOSIX APIコールに変換するレイヤー」を提供するという驚くべき処理系実装があることを知った。それがWineである。(※薄々聞いてはいたが、今回明確に理解した。)
 
Wine公式サイト:
 
なので、Windows OS自体は不要。その代わり(?)、何でもかんでも動くわけでは無い、様子。とはいえ、FF XI Online、Photoshop、.NET Frameworkなどもほどほど動く実績がある様子。
 
Wine公式サイトのアプリケーション互換リスト:
 
現在(※2020年6月21日時点)、macOS 10.8〜10.14(Mojava)までサポートされている。
 
Wine公式サイトのmacOS版導入ガイド:
 
なお、本記事では、このWine本家からの配布パッケージを明示するときは「bare Wine」と表記する。
 
EasyWineとは?
 
Wineに対して日本語フォント周りのチューニングを施すラッパーとWine本体を同梱した、個人の手による"ディストリビューション"(※と言っていいかな?)である。
 
EasyWine公式サイト:
 
有料(※100円以上)での配布となっている。(※2020年6月21日時点にて)
 
EasyWineとWineの技術的な理解は、EasyWineのWikipediaエントリー、製作者のブログ記事、を参照するのがよいと思われる。
 
若干余談だが、EasyWine製作者によるEasyWine利用目的アンケートの結果がおもしろかった。
 
■ A5:SQL Mk-2をmacOSで動かした記録
 
o 実施日時
- 2020年6月20日〜21日
 
o 各ソフトウエアのバージョン
- macOS Mojava 10.14.6
- Wine Stable 5.0
- EasyWine "EasyWine64_20200603_wine64-5.0.1"
- A5:SQL Mk-2 2.15.0
 
bare Wineの導入で引っかかった点
公式サイトの手順通りに進めて、引っかかりなく導入終了できた。
 
導入するとLaunchpadにWineのアイコンが出現する。これを実行したら"Wineアプリ"がハングアップしたかのようになった。しかし、それは起動手順の誤り。LaunchpadのWineアイコンから起動することは無い。対象の.exeを直接起動する。
.exe初回起動時に、何か追加インストールするようガイドが出るが、順次導入していく。
 
A5:SQLの実行手順
bare Wine導入後は、.exeファイルをmacOSのFinder上でダブルクリックすれば、Wineと共にWindowsアプリがそのまま起動される。Finder/macOSにとってみれば、「.xlsxをダブルクリックしたらExcelが起動する」のと同じ。(※下のスクショは、bare Wine、EasyWine両方とも導入後の様子。「デフォルト」の表示がおかしいが。。)起動プロセスが、まずWineを起動、次に.exe起動、となっていて少々時間かかる。

 
bare Wine上でA5:SQLを動かした様子
動いた。フォントがだいぶがたがた。動作的には問題なさそう。

 
EasyWineの導入で引っかかった点
次にEasyWineを導入した。が、アンチウイルスソフト(Bitdefender)が、含まれる"explorer.exe"などをヒューリスティックにウイルス判定して駆除してしまった。ダウンロードした配布パッケージの.zipを解凍したら、その場で駆除に掛かられた。

 
そこで、一度ウイルススキャンをオフにして、導入実施して、A5:SQLの動作確認をした。
問題なく動作していそうな様子を確認後、一旦導入したEasyWineを削除し、ウイルススキャンをオンに戻して、EasyWineの.zip解凍から再試行した。当然"explorer.exe"などは駆除されるが、よく確認すると、駆除されたのはWindowsのシェル環境を構成していそうな.exe類に限られていたので、A5:SQL自体の実行には影響ないかと判断し、そのままにしてみた。実際、それでA5:SQLは正常動作していると思う。ただし、"EasyWine64.app"を単体実行すると"WineFile"(wine explorer)が起動するのだが、これの画面が何も表示されない状態となった。
 
なお、EasyWineの配布.zipを解凍して得られる"EasyWine64.app"は、「アプリケーション」フォルダーに移動した。Launchpadのアイコンを並べ変えた。

 
EasyWine上でA5:SQLを動かした様子
動いた。(※前節の通り、"explorer.exe"類は削除されたままの状態にて。)フォントの様子をbare Wineの場合と比べること。

 
■ まとめ
・「A5:SQL Mk-2を、Wineを用いて、macOS Mojavaで動かす」という目標は達成できた。
・しかし、下記のような技術上の困難さが確認された。:
- Wineは、現時点(※2020年6月21日時点)で、macOS Catalinaをサポートしていない。
- bare Wineは、人によるかもしれないが、表示の品質が"QOL"的に少々つらい。
- 今回は、BitdefenderがEasyWine内包のシェル系.exeをウイルス判定したわけだが、ウイルス(誤)判定は往往にして起こるのだろうという認識を得られた。
 
<追記、その1>
Wineは要素技術としては相当面白いものだ。(※よくある「MacでZipアーカイブ作るとWindowsで解凍できない問題」も、これでWindows版のアーカイバー使えば解決できそう。)
しかしながら、個人的なプロジェクト、またはワンショット・タスクであれば問題ないが、業務上の持続的なプロセスの運用を依存させるには、"安定感"が足りないと思った。
 
<追記、その2>
その後、Wine事情を精細にまとめている記事を見つけた。
 
- "macOSはWineを活用するともっと便利になる", officeの杜 (※個人ブログ):
 
記事で触れられているところの、「CrossOver」という"Wineの商用ディストリビューション"が、"運用の安定"という意味では最も適していそう。
 
CrossOverサイト:
 
◆以上