anyenvを使って*env系をまとめて管理
どうも!西村祐二@大阪です。
プログラミング言語のバージョン管理に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で管理している方には なかなか便利なツールではないかと思います。