私の場合、開発環境では複数の言語のコードを書いたり実行したりします。
例えば perl, ruby, nodejs, python など。
これらを利用するために、plenv, rbenv, nodebrew, pyenv などを利用していました。
しかし、遅ればせながら anyenv というものがあると聞いたので、こっちに乗り換えました。
**envを2つ以上使ってる人はこれ使うのが良いと思います。おすすめ。
インストールは簡単
README.md のとおりにやればOK
$ git clone https://github.com/riywo/anyenv ~/.anyenv
PATHの設定
zshrc がシンプルになりました!
# ------------------------------------------------------------------------
-# plenv
+# anyenv
# ------------------------------------------------------------------------
-if [ -d ${HOME}/.plenv ] ; then
- export PATH=${HOME}/.plenv/bin:${HOME}/.plenv/shims:${PATH}
- eval "$(plenv init -)"
-fi
-
-# ------------------------------------------------------------------------
-# rbenv
-# ------------------------------------------------------------------------
-if [ -d ${HOME}/.rbenv ] ; then
- export PATH=$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH
- #export PATH="$HOME/.rbenv/bin:$PATH"
- eval "$(rbenv init -)"
-fi
-
-# ------------------------------------------------------------------------
-# nodebrew
-# ------------------------------------------------------------------------
-if [ -d ${HOME}/.nodebrew ] ; then
- export PATH=${HOME}/.nodebrew/current/bin:${PATH}
-fi
-
-# ------------------------------------------------------------------------
-# pyenv
-# ------------------------------------------------------------------------
-# git://github.com/yyuu/pyenv.git
-if [ -d ${HOME}/.pyenv ] ; then
- export PATH="$HOME/.pyenv/bin:$PATH"
- eval "$(pyenv init -)"
+if [ -d $HOME/.anyenv ] ; then
+ export PATH="$HOME/.anyenv/bin:$PATH"
+ eval "$(anyenv init -)"
fi
もっと早く知っていればよかった・・・。
tmux を使っている場合(追記)
- shims へのPATHを通さないと tmux 起動した後だと system の方をみちゃうようです
- そこで下記のような差分が必要そうです
- https://github.com/luckypool/dotfiles/commit/08e5af8b145e183a41fec5c9b3ecbe6e923f5d01
- 追記
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/shims:$PATH"
+ done
+
fi
参考
anyenv install
以下はインストールした時のメモです。
ruby, perl, python, node.js に相応する **env をインストールします。
$ anyenv install rbenv
$ anyenv install plenv
$ anyenv install pyenv
$ anyenv install ndenv
初期状態は下記のようにsystemのものを指していると思います。
$ anyenv versions
ndenv:
* system (set by /Users/luckypool/.anyenv/envs/ndenv/version)
plenv:
* system (set by /Users/luckypool/.anyenv/envs/plenv/version)
pyenv:
* system (set by /Users/luckypool/.anyenv/envs/pyenv/version)
rbenv:
* system (set by /Users/luckypool/.anyenv/envs/rbenv/version)
ということで、おなじみ **env からインストールします。
$ rbenv install 2.1.0
$ plenv install 5.16.3
$ ndenv install v0.10.25
$ pyenv install 2.7.6
$ pyenv install 3.3.3
それぞれ時間かかかりますが、ちゃんとインストールされると下記のようになります。
$ anyenv versions
ndenv:
system
* v0.10.25 (set by /Users/luckypool/.anyenv/envs/ndenv/version)
plenv:
* system (set by /Users/luckypool/.anyenv/envs/plenv/version)
5.16.3
pyenv:
* system (set by /Users/luckypool/.anyenv/envs/pyenv/version)
2.7.6
3.3.3
rbenv:
* system (set by /Users/luckypool/.anyenv/envs/rbenv/version)
2.1.0
ということで、インストールしたversionを指すようにglobalを設定します。
rbenv global 2.1.0
plenv global 5.16.3
ndenv global v0.10.25
pyenv global 3.3.3
変更されましたね!
$ anyenv versions
ndenv:
system
* v0.10.25 (set by /Users/luckypool/.anyenv/envs/ndenv/version)
plenv:
system
* 5.16.3 (set by /Users/luckypool/.anyenv/envs/plenv/version)
pyenv:
system
2.7.6
* 3.3.3 (set by /Users/luckypool/.anyenv/envs/pyenv/version)
rbenv:
system
* 2.1.0 (set by /Users/luckypool/.anyenv/envs/rbenv/version)
転ばぬ先の杖
必要に応じて確認すればいいですが、忘れがちなので、下記の確認もしておきます。
rubyのコードのためにbundlerをいれときます。
$ which gem
/Users/luckypool/.anyenv/envs/rbenv/shims/gem
$ gem install bundler
$ which bundle
/Users/luckypool/.anyenv/envs/rbenv/shims/bundle
perlのコードのためにcpanmとcartonをいれときます。
$ plenv install-cpanm
$ cpanm Carton
$ which carton
$ /Users/luckypool/.anyenv/envs/plenv/shims/carton
一応 pip と npm もPATHが通っているか確認します。
$ which pip
/Users/luckypool/.anyenv/envs/pyenv/shims/pip
$ which npm
/Users/luckypool/.anyenv/envs/ndenv/shims/npm
以上!