考えなしな Homebrew の brew upgrade
で、Readline のバージョンが7系から8系に更新してしまいました。
Homebrew でインストールしていたパッケージは依存関係が管理されているので問題ないはずですが、自前でコンパイルしていた依存関係のあるソフトウェアでは Library not loaded が発生するかと思います。
自分の環境では phpbrew と、phpbrew でインストールしていた PHP が動かなくなってしまいました。
正確に言えば、PHP を動かしたいなら brew switch readline 7.0.5
を、Homebrew でインストールした tig や hh を動かすときは brew switch readline 8.0.0
を、……いちいち切り替えないと動かないので面倒です。
この切り替えを上手いことして、Readline 7 でコンパイルした PHP を消去して Readline 8 でコンパイルし直せば解決するはずですが、phpbrew の動作には PHP が必要なので、ちょっと順番で手間取りました。
一応解決できた手順は以下の順序だったはず。
-
Readline のバージョンを 7 系に
brew switch readline 7.0.5
-
phpbrew でインストールしていた PHP を全て
phpbrew remove
-
Readline のバージョンを 8 系に
brew switch readline 8.0.0
-
~/.bashrc で phpbrew を無効に(
~/.phpbrew/bashrc
のロードをコメントアウト) -
Homebrew で
brew install php
(PHP 7.3.1 が入った) - ~/.bashrc で phpbrew を有効化
- 必要なバージョンの PHP を phpbrew でインストール
ただ、そもそも phpbrew には Mac にインストールした PHP へ戻す仕組みがあるようなので、このコマンドを使っていればもっと簡単に解決できたのかもしれません。
COMMANDS
off Temporarily go back to the system php
switch-off Definitely go back to the system php