anyenvでrbenvとかjenv(java)とかpyenvとか管理すると便利
ローカル環境で言語のランタイムの切り替えを管理できるツール ー Javaのjenv
、Rubyのrbenv
、Pythonのpyenv
ー などをまとめて管理/インストールできるanyenv
がとても便利です。
# bash向けにアレンジしてます。 # インストール git clone https://github.com/riywo/anyenv ~/.anyenv echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(anyenv init -)"' >> ~/.bash_profile exec $SHELL -l # ~/.bash_profile の設定をリロード # 確認 which anyenv type anyenv anyenv help anyenv versions
以下、例としてpythonのランタイムについて
# pyenv(python)のインストール anyenv versions anyenv install pyenv exec $SHELL -l anyenv versions pyenv --version # pythonの2系と3系をインストール例 pybenv versions pyenv install --list pyenv install 2.7.10 pyenv install 3.4.3 pyenv rehash pyenv versions # デフォルトのpythonのバージョンの切り替え python -V pyenv global 2.7.10 python -V pyenv versions # 特定のディレクトリのpythonのバージョンの切り替え mkdir ./pyenv_test cd ./pyenv_test python -V pyenv local 3.4.3 python -V pyenv versions cat ./.python-version # pyenv local コマンドは、このファイルを作って、このディレクトリで使用するpythonのバージョンを書き込んでるだけ。
- 基本的に
rbenv
以外の*env
はrbenv
をfolkするか参考にするかして各者が作ってるようです。なのでコマンドも似かよっています。
追記(2015年09月04日)
anyenv
は、2015年09月04日時点でこれだけの*env
に対応しているようです。
言語 | Star | *env |
---|---|---|
R | 48 | Renv |
Crystal | 41 | crenv |
D | 20 | denv |
Erlang | 29 | erlenv |
Elixir | 101 | exenv |
Go | 5 | goenv |
Haskell | 2 | hsenv |
Java | 754 | jenv |
Lua | 7 | luaenv |
node.js/io.js | 122 | ndenv |
node.js | 21 | nenv |
node.js | 78 | nodenv |
PHP | 9 | phpenv |
Perl | 266 | plenv |
Python | 2999 | pyenv |
Ruby | 6984 | rbenv |
SBT(Scala) | 7 | sbtenv |
Scala | 19 | scalaenv |
- https://github.com/riywo/anyenv/tree/master/share/anyenv-install から調べました*1。
jenv
やerlenv
、exenv
などはランタイムのインストール機能がなくて、自分でインストール(やビルド)が必要だったりします。他にもそういう手動インストール系があるのかもしれません。rbenv
のノリで進むとちょっと面倒くさく感じますが、実際jenv
をローカルで使っている感想は、かなり便利です。node
関連のが3種あります。自分は、Starの数とanyenv
と作者が一緒という2つの理由で、なんとなくndenv
を使ってみています。nodeのランタイム管理ならnodebrew
という選択肢もあると思います。
*1:Starの数は2015年09月04日時点のものです。時間が立てば当然増減します。あくまで参考までに