macOS Catalina に OpenModelica 開発版をインストールする

はじめに

正月休みを利用して、MacBook Pro の macOSを Mojave からCatalina に上げ、OpenModelica の開発版をインストールしました。OpenModelica は、Modelica を使ってモデルベースでモデリングとシミュレーションを行うオープンソースの環境で、長期的な開発は Open Source Modelica Consortium (OSMC) という非営利組織によってサポートされています。

MacPorts を使用して OpenModelica の開発版をインストールする方法についてまとめました。

 

OpenModelica のMac 対応の現状

開発元の Download Mac では、Mac でも MacPorts または Homebrew を使ってソースからインストールできる、とあります。開発元からは Macports 用のリポジトリが提供されており、ソースからインストールする以下のパッケージが用意されています。

  • openmodelica 最新の安定版
  • openmodelica-release 最新のリリースポイント版
  • openmodelica-devel 開発版 (Nightly-Build)

Homebrew を使うインストール方法については、ソースからビルドするオペレーションの例が簡単に書いてあります。しかしながら、どちらも実際にはなかなかインストールできません。原因は、

  • macOS には、ほぼ年に1回大きなアップデートがあり、開発環境や実行環境、セキュリティーポリシーなどが大きく変化する。
  • OpenModelica の開発がなかなか安定しない。

ということにあると私は考えています。例えば、OpenModelica は gfortran を使用します。MacPorts で openmodelica-devel のインストールオプションを確認すると、gfortran43 から gfortran5 まで指定できます。ところが、Catalina にインストールした最新版の MacPorts 2.6.2 では、当初 gcc9 に含まれる gfortran9 しか使えませんでした。gfortran5 を含む gcc5 をビルトするには、 Apple が提供する開発環境である Command Line Tools を11.3 (2019.12.03リリース) へアップデートするまで待たねばなりませんでした。MacPorts の gfortran5 がビルドできるようになったのは 2019.12.17 でした。この時点で、私の iMac の環境で openmodelica-devel のビルドは一回成功しましたが、再びインストールエラーが発生するようになり、2019.12.30 頃再びインストールに成功するようになりました。 このように開発環境や実行環境、セキュリティポリシーの変化に起因する不安定は、macOS をアップデートする限り、開発版だけでなく安定版やリリースポイント版にも影響を与えます。また、OpenModelica の開発は現在フロントエンドまわりの大規模な改変を行っており、これもビルドを不安定にする要因になっています。

MacPorts と Homebrew を比べると、現在では Homebrew の方が流行っています。しかしOpenModelica に関しては、

  • MacPorts は、開発元からビルドするための依存関係を含むパッケージが提供されている。
  • MacPorts でも、頻繁にインストールできないことがある。
  • Homebrew を使って自力で全ての依存関係を解決するのは難しい。

などを考えると、現状でインストールするなら MacPorts を使用する方がベターです。

現在、ビルド環境が全く同じではないのですが、ビルドが可能かどうかの目安は、build and test status で確認できます。

安定した状態で使用するなら、仮想マシンでLinux 版や Windows 版の1.13.2を使うことを考えた方がいいでしょう。

 

インストール環境

MacBook Pro (13-inch, 2016) を使用しています。macOS Mojave で MacPorts をインストールしたまま、macOS を Mojave から Catalina にアップグレードしました。なるべくクリーンな状態でインストールするため、MacPorts のアンインストールと再インストールという余分な手間がかかりました。元々 Catalina を使っていて MacPorts 未インストールの環境であれば、「MacPorts のインストール」まで飛ばしてください。

 

macOS の Mojave から Catalina へのアップデート

 

ログインシェルを zsh にする。

Catalina にアップグレードして、ターミナルを起動すると、

と表示されます。Catalina では、デフォルトのログインシェルが bash から zsh に変更されたようです。書いてあるとおり、

を実行しました。そして再ログインしました。

MacPorts のアンインストール

クリーンインストールするため、いったん MacPorts をアンインストールしました。MacPorts の公式のアンインストール手順は、https://guide.macports.org/chunked/installing.macports.uninstalling.html に書かれていますが少し注意が必要です。以下、実際に行った手順を示します。

とりあえず Catalina 用のMacPorts をインストールする。

Mojave に対応した port コマンドは使えないので、いったん、Catalina 用の port コマンドをインストールします。https://github.com/macports/macports-base/releases/tag/v2.6.2 から MacPorts-2.6.2-10.15-Catalina.pkg をダウンロードします。このファイルをダブルクリッックしてインストールします。インストールの終了時にこのパッケージファイルをゴミ箱に入れるか聞かれますが、残しておきます。

 

MacPorts でインストールしたソフトウェアをアンインストールする。

以下を実行します。

 

macports ユーザと macports グループを削除する。

公式の手順では

ですが、

というエラーとなります。

とするとうまくいきました。

 

macports が使用するファイルやフォルダを削除する

公式の手順では、

ですが、OS をアップデートした影響かもしれませんが、すでに存在しないファイルがあってエラーになるのでそれらをはずして、

を実行しました。これでアンインストールは終了です。

 

Java のアンインストール

MacPorts で OpenModelica をビルドしているときに、依存するパッケージのインストールで Java のインストールを促されることがあります。Oracle JDK は 2019年4月16日よりライセンスが変更されています。私の場合は MacPorts を使って OpenJDK をインストールするつもりなので、今までの Java をアンインストールしました。Oracle の Java や JDK のアンインストール方法は、

に記述されています。

 

XQuartz のアンインストール

XQuartz は、macOS で動作する X Window System を提供します。Release を見ると、MacPorts で Tiger 以後のOSのバージョンについてテストとサポートがなされていると書かれています。MacPorts でインストールすることにします。

AppCleaner 使ってアンインストールしました。再ログインが必要です。

[2020/01/22 追記] これだけでは不十分のようです。Xquartz のアンインストール を参考にして以下を行いました。

 

MacPorts のインストール

公式のインストール手順は、https://www.macports.org/install.php に書かれています。

Command Line Tools の準備

まだ Xcode をインストールしていない場合、AppStore からインストールします。Xcode を起動すると、additional components のインストールを促す画面が現れるのでインストールします。

[りんごマーク]>[このMacについて]をクリックして、[ソフトウェア・アップデート]を押し、Xcode や Command Line Tools のアップデートがあればアップデートします。

ターミナルを起動して、

を実行します。Command Line Tools がインストールされてない場合これでインストールできます。 Command Line Tools が Xcode とともにインストールされていると、

と表示されます。

Command Line Tools のバージョンは、Xcode を起動して、[Xcode]>[Preferences…]の[Locations]タブで確認できます。私の環境は、Xcode 11.3 (11C29) となっています。

Command Line Tools のインストールが済んだら License Agreement に同意する手続きをします。以下を実行して、スペースで画面を進め、最後に agree を入力します。

 

MacPorts のインストール

MacPorts のアンインストールのときにダウンロードした、MacPorts-2.6.2-10.15-Catalina.pkg をダブルクリックしてインストールします。インストールが終了したら。

を実行します。

 

X11 Server のインストール

削除した XQuartz の代わりに、xorg-server をインストールします。

X11 Server を有効にするためには、再ログインが必要です。ここまでで環境が整いました。

 

OpenModelica 開発版のインストール

インストール方法は、Download Mac に記述されています。

ターミナルで

を入力してパスワードを入力し、root ユーザで操作します。root ユーザのログインシェルは /bin/sh のままです。Dawnload Mac に書いてある様に、

を実行して、リポジトリを登録します。いよいよ OpenModelica 開発版をインストールします。

設定した variant (オプション)は、+libraries は多数のオープンソースシステムライブラリをインストールする設定、+osg は OpenSceneGraph を使って3Dの可視化を行う設定、+python は python インターフェースをビルドする設定です。以前は +osg で MultiBodyライブラリの3Dアニメーションができるようになったのですが、現在は残念ながら機能しません。

上記を実行すると、最初に依存するソフトウェアをインストールするか聞かれるので、すべてインストールします。

非常に時間がかかります。

py27-omniORBpy のインストール時にエラーがでます。

omniORB で python27 を使う設定が必要なので次の様にインストールし直します。

再び

を実行します。

再びエラーで止まって、javaのインストールを促されるので、どのバージョンをインストールするか悩みますが、

をインストールしました。再び、以下を入力します。

以上で、私の環境ではビルドできました。

LaunchPad の OMEdit をクリックすると OpenModelica Connection Editor が起動します。

OMEdit

アップデート

いったんインストールすると、以下の方法でアップデートできます。

install や upgrade がうまくいかないとき、-v -t オプションが有効なこともあります。

 

インストールされたパッケージ

と入力すると、インストールされたパッケージを確認することができます。以上のインストール作業で、以下がインストールされました。Homebrew でも以下の様な環境を整えればインストール可能だと考えられます。

以上。

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です