この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
どうも!西村祐二@大阪です。
プログラミング言語のバージョン管理にpyenvやrbenv、ndenvなどで管理している方は多いかと思います。
その際に今どのバージョンに設定しているのか、どのバージョンが入っているのか確認することがよくあります。
**env系をまとめて確認できる「anyenv」というものがなかなか便利だったのでご紹介したいと思います。
利点
個人的に思う「anyenv」の便利なところは次の3つかなと思います。
- 現在のバージョンを何に設定しているか、どのバージョンを入ってるかまとめて確認できる
- **env系を簡単にインストールできる
- 新しいプログラミング言語を追加しても.bash_profileや.zprofileなど汚さなくてすむ
インストール
Githubのページに記載されている通りです。
.your_profileと記載されているところを
bashを使っている人は .bash_profile、zshを使っている人は .zprofileなどへ
適時かえて実行すれば問題無いかと思います。
私はzshを使っているので下記は .zprofileで記載しております。
$ git clone https://github.com/riywo/anyenv ~/.anyenv
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.zprofile
$ echo 'eval "$(anyenv init -)"' >> ~/.zprofile
$ exec $SHELL -l
※もともと**envをインストールしていた人は、その箇所をコメントアウトするか削除しておいたほうが良いかもしれません。
anyenvの使い方
**env系インストール
コマンドから簡単にインストールできます。
$ anyenv install rbenv
$ anyenv install pyenv
$ anyenv install ndenv
**envから使いたいバージョンをインストール
いつものようにインストールできます。
$ ndenv install v7.10.0
$ pyenv install 3.6.0
$ rbenv install 2.4.1
現在(2017/05/09)インストールできる**env系
多くの**envに対応しています。
$ anyenv install -l
Available **envs:
Renv
crenv
denv
erlenv
exenv
goenv
hsenv
jenv
luaenv
ndenv
nenv
nodenv
phpenv
plenv
pyenv
rbenv
sbtenv
scalaenv
swiftenv
バージョン確認
$ anyenv versions
ndenv:
* v7.10.0 (set by /Users/yourname/.anyenv/envs/ndenv/version)
pyenv:
* system (set by /Users/yourname/.anyenv/envs/pyenv/version)
3.6.0
rbenv:
* system (set by /Users/yourname/.anyenv/envs/rbenv/version)
2.4.1
別の方法でいれたものや、デフォルトで入っているものが「system」として表示され現在のどれに設定されているか、どのバージョンが入っているかわかります。
env系の動作確認
anyenvでインストールした**env系も使い方は今までと同じです。
global指定でバージョンが切り替わるか確認(例:Node.js)
- 現在のバージョン確認
$ node -v
v7.10.0
$ ndenv versions
* v7.10.0 (set by /Users/yourname/.anyenv/envs/ndenv/version)
v7.9.0
- v7.9.0へバージョン切り替え
$ ndenv global v7.9.0
$ ndenv versions
v7.10.0
* v7.9.0 (set by /Users/yourname/.anyenv/envs/ndenv/version)
$ node -v
v7.9.0
問題なく切り替わりました。
local指定でバージョンが切り替わるか確認(例:Node.js)
- 現在のバージョン確認
$ node -v
v7.9.0
- あるディレクトリ内ではv7.10.0を利用するようにする
$ mkdir nodejs7.10
$ cd nodejs7.10
$ ndenv local v7.10.0
- 確認
$ node -v
v7.10.0
$ ndenv versions
* v7.10.0 (set by /Users/yourname/work/chversion/nodejs7.10/.node-version)
v7.9.0
問題なく、特定のディレクトリ内でバージョンが切り替わっています。
$ cd ..
$ node -v
v7.9.0
$ ndenv versions
ndenv:
v7.10.0
* v7.9.0 (set by /Users/yourname/.anyenv/envs/ndenv/version)
ディレクトリから移動すると元のバージョンに戻っています。
まとめ
anyenvを使うことで**env系をまとめて管理できます。
おわりに
いろんな言語、いろんなバージョンを**envで管理している方には なかなか便利なツールではないかと思います。