3 FreeFEM v4.15 (実は v4.15.1?) でトラブル …… 一応何とか出来た

(しばらく工事中)


授業でデモンストレーション。 まっさらに近い MacBook に FreeFEM v4.15 をインストールしようとした。

FreeFEM-v4.15-Apple-Silicon-15.4.dmg をダブル・クリックしてから
ターミナルで実行
cd /Volumes/freefem4.5.1
bash ./Install-app.sh

(そもそも v4.15 なのに freefem4.5.1 って一体何?15.4 って何??)

テスト実行のところで、 libgfortran.5.dylib がない、というエラー・メッセージが出力された。 あれ?なぜだろう??


現在 v4.15 らしい名前で配布されている FreeFEM-v4.15-Apple-Silicon-15.4.dmg は、 実は v4.15.1 (?) というバージョンらしく、それは 2025年春に書いたメモ 「FreeFem++ 4.15 をインストールしてみた」 の説明が該当しなくなっている! v4.15.1 は別物なんだ。

参照しているライブラリィをチェックしよう。
% otool -L /Applications/FreeFem++.app/Contents/ff-4.15.1/bin/FreeFem++ | grep libgfortran
/opt/homebrew/opt/gcc/lib/gcc/current/libgfortran.5.dylib (compatibility version 6.0.0, current version 6.0.0)

つまり、 /opt/homebrew/opt/gcc/lib/gcc/current/libgfortran.5.dylib を探しに行っていて、それが存在しないのでエラーになっている。 これは Mac 用の配布パッケージを作った人が、 Homebrew で gcc をインストールしていて、 そのライブラリィを参照するようにしていた、ということかな。 明らかにパッケージ作った人のミスだね。

他にもミスがあった。 インストール&テストのスクリプト Install-app.sh/Applications/FreeFem++.app/Contents/ff-4.15.1/share/FreeFEM/4.15.1/examples/tutorial/Laplace.edp を実行しようとするのだけれど、 /Applications/FreeFem++.app/Contents/ff-4.15.1/share/FreeFEM/4.15.1/ というディレクトリィは存在しない。 /Applications/FreeFem++.app/Contents/ff-4.15.1/share/FreeFEM/4.15/ (末尾が 4.15 であることに注意) というディレクトリィがあるだけだ。 これも明らかに変だよね (なんで 4.15.1 と 4.15 が混じっているんだ)。

これは
cd /Applications/FreeFem++.app/Contents/ff-4.15.1/share/FreeFEM/
sudo ln -s 4.15 4.15.1
とでもしておくのかな?


ライブラリィの問題に戻る。 Homebrew に依存しているものは他にもあるか?
% otool -L /Applications/FreeFem++.app/Contents/ff-4.15.1/bin/FreeFem++ | grep homebrew
/opt/homebrew/opt/gcc/lib/gcc/current/libgfortran.5.dylib (compatibility version 6.0.0, current version 6.0.0) /opt/homebrew/opt/gcc/lib/gcc/current/libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0)

libgfortran.5.dylib の他にも、 libquadmath.0.dylib が必要である、と。

どうしよう… 実は /Applications/FreeFem++.app/Contents/ff-4.15.1/gnu/ に、 libgfortran.5.dyliblibquadmath.0.dylib が用意されている。 なるほど、本来それを使ってもらうつもりだったのね。

そこで、次のような姑息な手段で一応動くように出来た。
対策1
sudo mkdir -p /opt/homebrew/opt/gcc/lib/gcc/current/
cd /opt/homebrew/opt/gcc/lib/gcc/current/
sudo ln -s /Applications/FreeFem++.app/Contents/ff-4.15.1/gnu/libgfortran.5.dylib .
sudo ln -s /Applications/FreeFem++.app/Contents/ff-4.15.1/gnu/libquadmath.0.dylib .
つまり、 (私は Homebrew 使っていないので、 そもそも /opt/homebrew というディレクトリィは存在しないが) 参照しているところ /opt/homebrew/opt/gcc/lib/gcc/current を強引に作って、そこに配布されているライブラリィ・ファイル (へのシンボリック・リンク) を置くと。

しかし、このやり方はどうも気に入らない (私と違って Homebrew をインストールする人も当然いるし、 ライブラリィのバージョンが違うことによる問題が生じるかもしれない)。 やはり配布物として用意した /Applications/FreeFem++.app/Contents/ff-4.15.1/gnu /{libgfortran.5.dylib,libquadmath.0.dylib} を確実に使うようにすべきだ。

ChatGPT に相談したら、FreeFem++.app の方を直しましょう、とのこと。 これは外科手術に近いけれど、本来あるべき姿に直す、ということだ。

そのためのシェル・スクリプトを作ってくれた (こんなことまでしてくれるんだ)。

https://nalab.mind.meiji.ac.jp/~mk/misc/20260421/fix-freefem-rpaths.sh

対策2 (少し怖いけれど動くようだ…万一壊しても元々動かないものだったわけだし)
cd -
curl -O https://nalab.mind.meiji.ac.jp/~mk/misc/20260421/fix-freefem-rpaths.sh
chmod +x fix-freefem-rpaths.sh
sudo ./fix-freefem-rpaths.sh /Applications/FreeFem++.app
(最初の cd - は、 /Volumes/freefem4.5.1 は書き込み不可なので、 そこから抜けて作業するという意味である。)

動作チェックをしよう。
新しいターミナルを出して
cp -pr /Applications/FreeFem++.app/Contents/ff-4.15.1/share/FreeFEM/4.15/examples .
cd examples/tutorial/
FreeFem++ Laplace.edp

Image Laplace.edp

動いたみたいだ。もう少しチェックしてみるつもり。


(2026/4/22) それはそうと、v4.16 の Mac 用バイナリーはいつ頃提供されるのだろうか?

ソースプログラムは公開されているので、 試しに Claude Code に make させてみたら、それほど困難なく出来てしまった。 これも動作チェックすべきなのかな。 機能の強化 (UTF が使えるようにするとか) ができるかもしれない。 あ、もしかして、以前ギブアップしたあれが出来たりしないかな? 色々妄想が膨らむ。


脱線だけど、 以前途中でギブアップした、 EPWINGリーダーのコトノコを最新の macOS 用にコンパイルするとか、 そういうのも Claude Code で出来るかもしれない。



桂田 祐史