(しばらく工事中)
授業でデモンストレーション。 まっさらに近い 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.dylib と libquadmath.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 をインストールする人も当然いるし、 ライブラリィのバージョンが違うことによる問題が生じるかもしれない)。 やはり配布物として用意した /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 |
動いたみたいだ。もう少しチェックしてみるつもり。
(2026/4/22) それはそうと、v4.16 の Mac 用バイナリーはいつ頃提供されるのだろうか?
ソースプログラムは公開されているので、 試しに Claude Code に make させてみたら、それほど困難なく出来てしまった。 これも動作チェックすべきなのかな。 機能の強化 (UTF が使えるようにするとか) ができるかもしれない。 あ、もしかして、以前ギブアップしたあれが出来たりしないかな? 色々妄想が膨らむ。
脱線だけど、 以前途中でギブアップした、 EPWINGリーダーのコトノコを最新の macOS 用にコンパイルするとか、 そういうのも Claude Code で出来るかもしれない。