Open5

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

yuyu

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
-----------------------------------------
yuyu
  1. のgrep のオプションに関するエラーは以下の対応で解消した。
# GNU grep をインストール
brew install grep

# GNU grepをデフォルトとして使用するための設定
echo 'export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"' >> ~/.zshrc
source ~/.zshrc
yuyu
  1. のlibicuioのエラーは、既存のphpのアンインストールで解消された。
brew uninstall php@7.4

# phpの既存の設定ファイルを削除
rm -rf  /usr/local/etc/php
yuyu
  1. のBZip2のエラーについては、以下の対応をしたが解消されなかった。
brew reinstall bzip2

echo 'export PATH="/usr/local/opt/bzip2/bin:$PATH"' >> ~/.zshrc

次のリンク先の記事を参考に、ビルド用のオプションとともに phpenv install コマンドを実行したところインストールが成功した。
https://zenn.dev/yamadashy/scraps/a480dbf659c818

実行したコマンド

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
yuyu

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