14 FreeFem++ v4.11 のインストール

(2022/4/4追記 「やっと Mac 版 FreeFem++ 4.12 が来た (Apple Silicon 用に遅れて Intel 用も)」 というのを書いた。)


FreeFem++ は、 講義で使うときが来ると新しいのを探してインストールするのが、 私の習慣である。

2022年5月17日の最新版は v4.11 である。 Download が github になった。 これは重要な変化で、とても速くファイルが入手できるようになった。 地味に嬉しい。

Mac用のバイナリーは2種類提供されている。

(a)
FreeFEM-4.11-Apple-M1-f.dmg (273MB)
(b)
FreeFEM-4.11-MacOS-10.15-intel-c.dmg (234MB)
使う Mac の CPU 別に用意されている (Apple M1 (Apple Silicon), intel CPU) ということだ。

.dmg になったのか。ダブルクリックしてオープンすると、 FreeFem++.app, install-app.sh, README.md, README.txt という4つのファイルが見える。
README.txt

/Users/mk/.tex-inputs/diary-fig/FreeFEM-README.txt
どれどれのぞいてみよう。
cd /Volumes/FreeF*
less Install-app.sh
M1 の載った Mac では、 /Volumes/FreeFEM-4.11-Apple-M1 に cd することになる。 とすると、上の README.txt に書いてあるのは間違い (誤植)、 ということだな (FreeF*4-11* ではマッチしない、FreeF*4.11* とするのかな)。 Intel CPU の載った Mac ではどうなるのかな (2022/5/20 追記 FreeFEM-4.11-MacOS-10.15-intel にマッチする)。


スクリプト Install-app.sh を読んでみる。 結構ごちゃごちゃやっている (FreeFem++.app/Applications にコピーする以外に、 デスクトップに FreeFEM doc and Examples という名前のリンクを作るとか)。 ちょっと読むのはめんどい。 環境変数の SHELL を見て、zsh と bash 以外はお呼びではないと。 “erreur” ってなんだろう。フランス語か。 メッセージに英語とフランス語が混じっている (まあ FreeFem++ は昔からそうだよね)。

とにかく前進する。インストール・スクリプトを実行する。
./Install-app.sh
中で sudo しているのでパスワードを尋ねられる。 PATH を設定する設定が、使っているシェルが zsh だと .zprofile, bash だと .profile に、 いずれも決めうちで書き込まれる (これは下手だと思う。はまる人が出そうだ。)。

ちなみに、設定ファイルに書き込まれる内容は次の1行である。

export PATH=/Applications/FreeFem++.app/Contents/ff-4.11/bin:"$PATH"

ここまでのインストール手順まとめ
  1. Mac のCPUに応じて、 FreeFEM-4.11-Apple-M1-f.dmg, FreeFEM-4.11-MacOS-10.15-intel-c.dmg のいずれかを入手する。
  2. 入手した .dmg をダブルクリックして開く。
  3. ターミナルを開き、以下を実行する。
    cd /Volumes/FreeF*4.11*
    ./Install-app.sh
    
    (パスワードを入力)
    cd -
    

動くかどうか、 (ターミナルを起動し直すなど設定ファイル読み直してから) 言われたように試してみる
FreeFem++ /Applications/FreeFem++.app/Contents/ff-4.11/share/FreeFEM/4.11/examples/tutorial/Laplace.edp
特に問題なく動いた。


今回のバージョンはこれまでとは違い、 /Applications にたくさん物を置く、という方針で、 /usr/local/ff++ には書き込まなくなった。 (上で見たように) パスの設定もシェルの設定ファイルに書くわけで、 /etc/paths.d/FreeFem++ というファイルを作成しなくなった。 (過去のバージョンで) インストールしてあったものを掃除をしてくれるわけではない。 古いのを使っていた人は自分で掃除しよう、ということになる。
お掃除はこんな感じかな? (私はこうしました)
sudo rm -rf /etc/paths.d/FreeFem++ /usr/local/ff++

(2022/7/18 追記) 「古い macOS を使っている人が FreeFem++ を使うには」 というのを書いた。 Intel向けは 10.15 以降しかサポートしていないので、 それより古い maxOS を使っている人はどうすれば良いか、という話。

(2022/10/29追記) 実は M1 用は Monterey 以降しかサポートしていない (BigSurはサポート外) という衝撃の事実が分かった?何かの間違いか (ちょっと信じにくい)。
% FreeFem++
dyld: Symbol not found: __ZNKSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strEv
  Referenced from: /Applications/FreeFem++.app/Contents/ff-4.11/bin/FreeFem++ (which was built for Mac OS X 12.0)
  Expected in: /usr/lib/libc++.1.dylib

zsh: abort      FreeFem++
“built for Mac OS X 12.0” だものね。うーん。

(2022/10/30追記) BigSur on M1 Max で、M1 用FreeFem++ が動かない件、 どうしたかというと、Intel用のFreeFem++ をインストールしてもらうことにした。 一応私が試した範囲では動いているので。ちょっと間抜けな話だけど。


「インストールできない」という人がいたので、メールでリモコン。

  1. 使っている Mac は Intel CPU ですか、M1 ですか? また macOS のバージョンはいくつでしょうか。
  2. それによって入手すべきファイルが、
    (a)
    FreeFEM-4.11-Apple-M1-f.dmg (286199505バイト)
    (b)
    FreeFEM-4.11-MacOS-10.15-intel-c.dmg (244874891バイト)
    (c)
    FreeFem++-4.9full-MacOS_10.11.pkg (418815969バイト)
    と違ってきますね。どれを入手したでしょうか。 きちんと入手できましたか?(バイト数あってますか?)
  3. (a), (b) の場合は https://m-katsurada.sakura.ne.jp/lecture/applied-complex-function-2022/install-freefem-4.11/node2.htmlに書いてあるようにする訳ですが、 図1のようになりましたか?それが確認出来た場合は、 続いてターミナルでの操作になる訳ですが、 パスワードを入力した後、エラーや警告は発生しなかったでしょうか (どのようなメッセージが表示されたか残っていますか?)。
    (c) の場合は (バージョンは違うけれど) https://m-katsurada.sakura.ne.jp/labo/text/inst_memo_40/node2.htmlのように進むはずですが、最後まで行きましたか?
  4. とりあえず済んだ後、ターミナルで FreeFem++ [enter] とすると、 どういうメッセージが表示されるでしょうか。起動メッセージが出るか、 command not found とか出るか。メッセージはコピペできるはずで、 見せて下さい。(a), (b) でcommand not found となった場合、
    ls -l /Applications/FreeFem++.app/Contents/ff-4.11/bin/FreeFem++
    echo $PATH
    
    とするとどうなりますか? /Applications/FreeFem++.app/Contents/ff-4.11/bin が PATH に含まれているはずですが、そうなっているでしょうか。

以上のやりとりの結果分かったのは、PATH が通っていなかったというオチ。 そうなったのは、 インストール手順が以前より面倒になったせいではないか?と疑っている。 以前みたいに /etc/paths.d/FreeFem++ 作ればいいのに、 という気がするが。

(2023/3/21追記) シェル・スクリプトでインストールするわけだが、 /Applications/FreeFem++.app が存在していると、コピーが実行されず、 正常にインストールできないようである (気のせい??)。 インストール前に古いものを自分で掃除しておくべきなのだろうか。
sudo rm -rf /Applications/FreeFem++.app
(このページを書い始めたときは、Monterey が最新の macOS だったけれど、 その後出た Ventura では、Gatekeeper がうるさくなって色々引っかかるようだ。 「やっと Mac 版 FreeFem++ 4.12 が来た」 が少し参考になるかも。


(Mac 関係の混乱については、正直 Hecht 先生カム・バックと言いたくなるけれど、 ここは若い人が頑張らないといけないのかしら…)

桂田 祐史