Open5
php 8.2 を Intel Mac にインストールしたときのエラー対応

phpenv install 8.2.3
を実行時に以下のエラーが発生した。
grep: invalid option -- P
dyld[12411]: Library not loaded: /usr/local/opt/icu4c/lib/libicuio.71.dylib
Referenced from: <F476B085-3588-359F-93EC-858DAE98B0D9> /usr/local/Cellar/php@7.4/7.4.32/bin/php
configure: error: Please reinstall the BZip2 distribution
(元のエラー出力)
-----------------
| BUILD ERROR |
-----------------
Here are the last 10 lines from the log:
-----------------------------------------
grep: invalid option -- P
usage: grep [-abcdDEFGHhIiJLlMmnOopqRSsUVvwXxZz] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
[--context[=num]] [--directories=action] [--label] [--line-buffered]
[--null] [pattern] [file ...]
configure: WARNING: unrecognized options: --with-png-dir, --with-libxml-dir, --with-icu-dir
dyld[12411]: Library not loaded: /usr/local/opt/icu4c/lib/libicuio.71.dylib
Referenced from: <F476B085-3588-359F-93EC-858DAE98B0D9> /usr/local/Cellar/php@7.4/7.4.32/bin/php
Reason: tried: '/usr/local/opt/icu4c/lib/libicuio.71.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/icu4c/lib/libicuio.71.dylib' (no such file), '/usr/local/opt/icu4c/lib/libicuio.71.dylib' (no such file), '/usr/local/lib/libicuio.71.dylib' (no such file), '/usr/lib/libicuio.71.dylib' (no such file, not in dyld cache), '/usr/local/Cellar/icu4c/72.1/lib/libicuio.71.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/Cellar/icu4c/72.1/lib/libicuio.71.dylib' (no such file), '/usr/local/Cellar/icu4c/72.1/lib/libicuio.71.dylib' (no such file), '/usr/local/lib/libicuio.71.dylib' (no such file), '/usr/lib/libicuio.71.dylib' (no such file, not in dyld cache)
configure: error: Please reinstall the BZip2 distribution
-----------------------------------------

- のgrep のオプションに関するエラーは以下の対応で解消した。
# GNU grep をインストール
brew install grep
# GNU grepをデフォルトとして使用するための設定
echo 'export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"' >> ~/.zshrc
source ~/.zshrc

- のlibicuioのエラーは、既存のphpのアンインストールで解消された。
brew uninstall php@7.4
# phpの既存の設定ファイルを削除
rm -rf /usr/local/etc/php

- のBZip2のエラーについては、以下の対応をしたが解消されなかった。
brew reinstall bzip2
echo 'export PATH="/usr/local/opt/bzip2/bin:$PATH"' >> ~/.zshrc
次のリンク先の記事を参考に、ビルド用のオプションとともに phpenv install コマンドを実行したところインストールが成功した。
実行したコマンド
PHP_BUILD_CONFIGURE_OPTS="--with-zlib-dir=$(brew --prefix zlib) --with-bz2=$(brew --prefix bzip2) --with-curl=$(brew --prefix curl) --with-iconv=$(brew --prefix libiconv) --with-libedit=$(brew --prefix libedit) --with-openssl=$(brew --prefix openssl@1.1)" phpenv install 8.2.3

php 7系のインストールになぜか失敗したが、以下のコマンドを追加してビルドに成功した。
export PKG_CONFIG_PATH="$(brew --prefix openssl@1.1)/lib/pkgconfig"
PHP_BUILD_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl@1.1) --with-zlib-dir=$(brew --prefix zlib) --with-bz2=$(brew --prefix bzip2) --with-curl=$(brew --prefix curl) --with-iconv=$(brew --prefix libiconv) --with-libedit=$(brew --prefix libedit) " phpenv install 7.4.33