macOS(OS X)で、RubyやPHPの環境を構築する場合、rbenv,phpenvを使う人が多いと思います。筆者もその1人です。rbenv,phpenvは個別に考えると凄く便利なのですが、一緒に使用しようとすると少々面倒臭い印象を受けます。何かいい方法はないかと探していたところ、Anyenvという◯◯envをインストール・管理できるツールがあることを知り、早速使用してみました。
以下は色々簡単に纏めたものです。玄人向けと思っていただいた方がいいかもしれません(笑)
前提
事前にHomebrewをMacにインストールして置いてください。
brewでインストールしたものをアンインストール
brew uninstallは一例です。自身の環境に合わせて変更してください。そもそもインストールしてないのであれば、この作業はスキップしてください。
$ brew uninstall rbenv ruby-build phpenv php56 &&\
rm ~/.ruby-version
Anyenvのインストール
brew installは一例です。自身の環境に合わせて変更してください。
$ git clone https://github.com/riywo/anyenv ~/.anyenv &&\
brew install libxml2 libmcrypt openssl re2c &&\
anyenv -h
AnyenvへのPathをとおす
$ vi .bash_profile
if [ -d $HOME/.anyenv ] ; then
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
for D in `\ls $HOME/.anyenv/envs`
do
export PATH="$HOME/.anyenv/envs/$D/bin:$PATH"
done
fi
設定を反映させるために
$ exec $SHELL -l
または
$ source ~/.bash_profile
各envをインストール
インストールできるenvを確認
$ anyenv install --list
envをインストール
$ anyenv install rbenv phpenv nodeenv
インストールした各envを認識させるために
$ exec $SHELL -l
または
$ source ~/.bash_profile
ヒント
ヒントという名のメモ。
NodeJSについて
筆者個人的にNodeJSは、brewでインストールしてnモジュールでバージョンを切り替えるのがいいのではないかと思います。
configure: error: Cannot find libz
$ phpenv install
を実行した時に "configure: error: Cannot find libz" というメッセージが表示されて、Build errorが発生する場合は、$ xcode-select --install
を実行すると解決します。
PHPのBuild時にOpenSSLでコケる
OS Xから、OpenSSLのヘッダファイルがなくなり、$ brew link --force openssl
でエラーができるようになったそうです。そのため、コンパイラにパスを渡さないといけないそうです。
$ vi .bash_profile
export PHP_BUILD_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl) --with-openssl-dir=$(brew --prefix openssl) --with-libxml-dir=$(brew --prefix libxml2)"
設定を反映させるために
$ exec $SHELL -l
または
$ source ~/.bash_profile
参考: brew link openssl --force ができなくて phpenv & php-build で PHP がビルドできない