条件
- anyenvでphpenvをインストール済
- OSをSierraからHigh Sierraにアップグレード
phpコマンドのエラー
アップグレード完了後、ターミナルからいつも通りphpコマンドを叩いてみる。
$ php
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.59.dylib
Referenced from: /Users/USERNAME/.anyenv/envs/phpenv/versions/7.1.8/bin/php
Reason: image not found
Abort trap: 6
icu4cのライブラリがロードされないとかで動作しなくなってしまった。
アンインストール〜再インストール失敗
ググってもphpenv関連で同じエラーが見つけられなかったため、一旦アンインストールする。
$ phpenv uninstall 7.1.8
Are you sure you want to remove version ‘7.1.8’? [y/N]: y
Version ‘7.1.8’ (/Users/USERNAME/.anyenv/envs/phpenv/versions/7.1.8) successfully removed.
再度phpenvで同じバージョンのphpをインストールする。
$ phpenv install 7.1.8
[Info]: Loaded extension plugin
[Info]: Loaded apc Plugin.
[Info]: Loaded composer Plugin.
[Info]: Loaded github Plugin.
[Info]: Loaded uprofiler Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: Loaded zendopcache Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 7.1.8 into /Users/USERNAME/.anyenv/envs/phpenv/versions/7.1.8
[Downloading]: https://secure.php.net/distributions/php-7.1.8.tar.bz2
[Preparing]: /var/tmp/php-build/source/7.1.8
-----------------
| BUILD ERROR |
-----------------
#ビルドエラー発生、ログを確認する。
$ vi /tmp/php-build.7.1.8.20180105145726.log
configure: error: in `/var/tmp/php-build/source/7.1.8':
configure: error: C compiler cannot create executables
See `config.log' for more details
Cのコンパイラが実行できないようなので、gccをチェックする。どうもXcodeのコマンドラインツールのパスが通っていないらしい。
$ gcc
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
xcode-selectを再インストールして再挑戦
xcode-selectを再インストールしてgccを使えるようにする。
$ xcode-select --install
$ gcc
clang: error: no input files
phpenvで再度phpをインストールする。
$ phpenv install 7.1.8
[Info]: Loaded extension plugin
[Info]: Loaded apc Plugin.
[Info]: Loaded composer Plugin.
[Info]: Loaded github Plugin.
[Info]: Loaded uprofiler Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: Loaded zendopcache Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 7.1.8 into /Users/USERNAME/.anyenv/envs/phpenv/versions/7.1.8
# (略)
[Success]: Built 7.1.8 successfully.
#インストール成功
$ phpenv versions
system
* 7.1.8 (set by /Users/USERNAME/.anyenv/envs/phpenv/version)
phpコマンドが使えるようになった。
$ php -v
PHP 7.1.8 (cli) (built: Jan 5 2018 15:31:20) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.8, Copyright (c) 1999-2017, by Zend Technologies
with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans