インストール: 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)。

5. ビルドできたらあとは起動するだけとなる。

./run.sh

XQuartzのX11ウインドウ上にModelioが起動される。

run.shに記載があるように、$HOME/modelioに基本的にはデータが保存される。

ひとまず、以上でM1 MacでModelioを実行できた。やっていることは、UTMなどの仮想環境でUbuntu版のModelioを実行しているだけなのだが、DockerでGUIアプリを実行している点が目新しい。この方法を使えば、他のApple Silicon未対応のアプリにも対応できそうだ。

コメントを残す

メールアドレスが公開されることはありません。