HAM MEDIA MEMO

Node.js の管理を「nodebrew」から「anyenv」に変更。 Ruby も Node.js でプロジェクトごとに使うバージョンを切り替える環境にしてみた

anyenv とは?

anyenv は **env をまとめて管理出来るようにした環境管理ツール。

GitHub : riywo/anyenv

**env はそれぞれのシステムのバージョンを楽に切り替えができるようにしたツールで、私も以前から rbenv は利用をしています。

Ruby を使うなら「rbenv」で複数バージョンを切り替えられるようにしておこう

これを機会に、Ruby も Node.js も、この anyenv を使うように変更してみます。

anyenv のインストール

Github からとってきます。

Github からクローン

$ git clone https://github.com/riywo/anyenv ~/.anyenv

git で ファイルを ~/.anyenv ディレクトリに clone します。

clone した後はプロファイルに必要なコードをかいて、パスを通します。

パスの設定

※ 本エントリーでは Mac で使うパス基準で書いています。使う環境で適時変更してください。

export PATH=$HOME/.anyenv/bin:$PATH
eval "$(anyenv init -)"

もしくは下記のコードでコマンドから直接プロファイルに追加。

$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.your_profile
$ echo 'eval "$(anyenv init -)"' >> ~/.your_profile

your_profile のところは、利用しているシェルの設定ファイルを指定してください。 例えば ~/.zshrc もしくは ~/.bash_profile の使っているプロファイルを指定してください。入れ終わったら $ source ~/.zshrc などでパスを有効化しましょう。

これで終わりではなく、ここから更に、利用するための各 **env をインストールします。

rbenv や ndenv など、利用する **env をインストール

$ anyenv install rbenv
$ anyenv install ndenv

インストールが無事に完了していたら下記のような表示に。

$ anyenv version
ndenv: system (set by /Users/USERNAME/.anyenv/envs/ndenv/version)
rbenv: system (set by /Users/USERNAME/.anyenv/envs/rbenv/version)

rbenv や ndenv 以外にも plenv、phpenv、pyenv など、他にも **env で必要なものをインストールしておいてください。

それぞれが導入できたら、必要なバージョンを確認&インストール。ここから先は rbenv などと同じ。

まずは ndenv のほうから。

インストール可能なバージョン一覧

$ ndenv install -l

v0.11.14
v0.11.15
v0.11.16
v0.12.0
v0.12.1
v0.12.2
v0.12.3
v0.12.4

インストールしたいバージョンが確認できたら、早速インストールへ。

必要バージョンのインストール

バージョン確認後のインストールを行います。

Node.js のインストール

$ ndenv install v0.12.4

nodebrew の時に比べると、時間もかからずにパッと終わる不思議。

インストールされたか確認

インストール済の一覧は、versions で確認ができます。

$ ndenv versions
* system (set by /Users/USERNAME/.anyenv/envs/ndenv/version)
v0.12.4

まだインストールしたバージョンが使われるようになっていないため、使うように切り替えます。

$ ndenv global v0.12.4

rbenv も同じですが、 global で指定するとPC内全体で指定したバージョンを使うように切り替わります。

globalではなく、今いる位置のローカル限定(プロジェクト限定)の場合は、 local で指定します。

指定したバージョンに切り替わったか確認

指定したバージョンが切り替わったか、 node のコマンドを叩いて確認しましょう。

$ node -v

指定したバージョンが表示されれば切り替え完了。

もしもうまく切り替わっていない時は、 $ ndenv rehash をたたいてみてください。

ツールを教えていただいた @BUN さん ありがとうございます!