インストール: Modelio | EclipseベースのUMLツールをApple Silicon Macへ
EclipseベースのクロスプラットフォームのUMLモデリングツールにModelioがある。Windows/Mac/Linuxに対応しているのだが、ARM CPUには未対応で、Apple SiliconのMacではそのままだと動作しない。M1 Macでの実行方法を調べたので記す。
macOS 11 Big SurのMacBook Air (M1, 2020)、Modelio 4.1.0 で確認した。
以前投稿した、「Eclipse系ソフト起動時のFailed to create the Java Virtual Machine.への対処 – Kenchant」で、使用するJavaをIntel版を指定して起動すると以下のエラーが出る。
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException cannot be found by org.modelio.core.project.data_4.1.0.202009140500 at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:511) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:414) at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:153) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 27 more
調査したところ、同じ問題の報告が「Modelio 4.1.0 fails to start on MacOS · Issue #12 · ModelioOpenSource/Modelio」にあった。Modelioが採用しているEclipseをApple Siliconに対応したものに差し替えないとMacに対応しないらしい。コメントの中で、pascalpoizatがコメントしているように、Dockerで起動させることで回避できるらしい。
「pascalpoizat/docker-modelio: Modelio 4.1.0 in a docker container」に記載の通りに行うと確かに起動できた。簡単にこちらにも記載する。
1. Docker Desktop (ARM版) を「Developers – Docker」からダウンロードしてインストールする。
2. 続いて「XQuartz」をインストールする。
3. 以下のコマンドでdocker-modelioを取得する。
git clone --depth 1 https://github.com/pascalpoizat/docker-modelio
cd docker-modelio
chmod +x run.sh
4. 以下のコマンドでビルドする。
docker build --platform linux/amd64 -t modelio:latest .
なお、README.mdの記載のコマンドは以下となっている。
docker build --rm -f "Dockerfile" -t modelio:latest .
このままだと、Apple SiliconのMacだとARM版のパッケージをインストールしてしまい、以下のエラーが出る。
#5 145.1 The following packages have unmet dependencies: #5 145.1 modelio-open-source4.1:amd64 : Depends: libc6:amd64 but it is not installable #5 145.1 Depends: libglib2.0-0:amd64 but it is not installable #5 145.1 Depends: libatk1.0-0:amd64 but it is not installable #5 145.1 Depends: libgtk2.0-0:amd64 but it is not installable #5 145.1 Depends: libstdc++6:amd64 but it is not installable #5 145.1 Depends: libwebkitgtk-1.0-0:amd64 but it is not installable #5 145.1 E: Unable to correct problems, you have held broken packages.
そのため、--platform linux/amd64
オプションでプラットフォームを明示的に指定するとともに、デフォルト値と同じ余分なオプションを除去した。マージされるかどうかはわからないが、同じ内容のPRを提出した (Fix apple silicon building error by senooken · Pull Request #1 · pascalpoizat/docker-modelio)。2022-09-22にマージされた。
5. ビルドできたらあとは起動するだけとなる。
./run.sh
XQuartzのX11ウインドウ上にModelioが起動される。
run.shに記載があるように、$HOME/modelio
に基本的にはデータが保存される。
ひとまず、以上でM1 MacでModelioを実行できた。やっていることは、UTMなどの仮想環境でUbuntu版のModelioを実行しているだけなのだが、DockerでGUIアプリを実行している点が目新しい。この方法を使えば、他のApple Silicon未対応のアプリにも対応できそうだ。