症状
突然、Emacsが起動しなくなった。Homebrewでインストールしたemacs-macで、/Applicationsにエイリアスが置いてあるのだが、クリックしてもウインドウが現れない。ちなみに環境は以下の通り:
- Mac mini (intel core i7)
- MacOS Sonoma 14.4.1
- Homebrew 4.3.0
- Emacs 29.1 (railwaycat/emacsmacport/emacs-mac)
「突然」とか「何もしてないのに」とか言っても原因はあるはずなので、思い返してみると、Homebrewでいくつかパッケージをアップグレードしたのが原因っぽい。
調査
GUIではエラーメッセージが見えない(「Emacsが異常終了したのでAppleに通知します」というダイアログは出てくるが、それ以上の情報はまったくない)ので、ターミナルで実行してみる。
% cd /usr/local/Cellar/emacs-mac/emacs-29.1-mac-10.0/Emacs.app/Contents/MacOS
% ./Emacs
dyld[10158]: Library not loaded: @rpath/libgcc_s.1.1.dylib
Referenced from: <C93A88B4-A5C5-3C6F-9F9B-CB9D58FF003E> /usr/local/Cellar/libgccjit/14.1.0/lib/gcc/current/libgccjit.0.dylib
Reason: tried: '/usr/local/Cellar/libgccjit/14.1.0/lib/gcc/current/libgcc_s.1.1.dylib' (no such file), '/usr/local/lib/libgcc_s.1.1.dylib' (no such file), '/usr/lib/libgcc_s.1.1.dylib' (no such file, not in dyld cache)
zsh: abort ./Emacs
libgcc_s.1.1.dylib
が無いのが原因とわかった。
解決策
ググってみたが、なぜ無くなったのかはよくわからない。gcc
パッケージに含まれているようなのだが、gcc
はすでにインストール済み。念のため再インストールしてみたが変化なし。
探してみると、/usr/local/Cellar/gcc/14.1.0/lib/gcc/14/libgcc_s.1.1.dylib
はちゃんと存在しているので、LD_LIBRARY_PATH
に入っていないのが問題のようだ。エラーメッセージを見ると/usr/local/lib
に置けばよさそうなので、シンボリックリンクを作って解決。
しかし、なぜ今まで動いていたのが動かなくなったのかわからないのが気になる…。