nodebrewを使ったnode.jsのバージョン管理(Mac)
はじめに
GruntやGulpを使う際にnode.js使ってますよね。npm(Node Packaged Modules)はbundlerのようにグローバル・ローカルインストールできますが、node.js自体のバージョン管理をしていなかったのでnodebrewを使ってみることにしました。rubyのrbenvのようなものですね。
パッケージ版のnode.jsについて
パッケージ版のnode.jsをすでにインストールしている場合はアンインストールします。アンインストールするとnodebrew側のnode.jsにnpmのパッケージを再インストールしなければいけません。これだけ注意してください。
パッケージ版のnode.jsを削除するコマンド
このページを参考に削除してください。全体をコピペして実行してください。
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom \
| while read i; do
sudo rm /usr/local/${i}
done
sudo rm -rf /usr/local/lib/node \
/usr/local/lib/node_modules \
/var/db/receipts/org.nodejs.*
npmのアンインストール
あと、npmも消してください。
$ sudo rm -rf ~/.npm
インストール(要Homebrew)
この記事ではwgetをインストールするためにHomebrewを使います。Homebrewの詳しいインストール方法はここのドキュメントをチェックしてみてください。
また、Homebrewについて知りたい方はここのまとめHomebrewについてがわかりやすいです。
nodebrewのインストール
Homebrewさえあればインストールはとても簡単です。
$ brew install nodebrew
==> Downloading https://github.com/hokaccha/nodebrew/archive/v0.7.4.tar.gz
######################################################################## 100.0%
==> /usr/local/Cellar/nodebrew/0.7.4/bin/nodebrew setup_dirs
==> Caveats
Add path:
export PATH=$HOME/.nodebrew/current/bin:$PATH
To use Homebrew's directories rather than ~/.nodebrew add to your profile:
export NODEBREW_ROOT=/usr/local/var/nodebrew
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completion has been installed to:
/usr/local/share/zsh/site-functions
==> Summary
🍺 /usr/local/Cellar/nodebrew/0.7.4: 7 files, 44K, built in 3 seconds
PATHの設定
インストールが完了したらパスを通します。これを行わないとnode.jsのバージョンが正しく反映されません。bash/zsh共にコンフィグファイルにexport PATH=$HOME/.nodebrew/current/bin:$PATH
を追記します。私はzshを使っているので$ vi ~/.zshrc
になります。保存できたら$ source .zshrc
で反映させます。
インストールの確認
コマンドが動くか試してみましょう。 バージョン名が表示されていればインストール成功です。
$ nodebrew -v
nodebrew 0.7.4
Usage:
nodebrew help Show this message
nodebrew install <version> Download and install a <version> (compile from source)
nodebrew install-binary <version> Download and install a <version> (binary file)
nodebrew uninstall <version> Uninstall a version
nodebrew use <version> Use <version>
nodebrew list List installed versions
nodebrew ls Alias for `list`
nodebrew ls-remote List remote versions
nodebrew ls-all List remote and installed versions
nodebrew alias <key> <version> Set alias to version
nodebrew unalias <key> Remove alias
nodebrew clean <version> | all Remove source file
nodebrew selfupdate Update nodebrew
nodebrew migrate-package <version> Install global NPM packages contained in <version> to current version
nodebrew exec <version> -- <command> Execute <command> specified <version>
Example:
nodebrew install v0.10.22 Install a specific version number
nodebrew use v0.10.22 Use a specific version number
nodebrewを試してみる
それでは、nodebrewを使ってnode.jsをインストールしてみます。
インストールできるnode.jsのバージョンを確認する
$ nodebrew ls-remote
を使ってインストールできるnode.jsのバージョン一覧を表示します。以外とたくさんありました。
$ nodebrew ls-remote
v0.0.1 v0.0.2 v0.0.3 v0.0.4 v0.0.5 v0.0.6
v0.1.0 v0.1.1 v0.1.2 v0.1.3 v0.1.4 v0.1.5 v0.1.6 v0.1.7
v0.1.8 v0.1.9 v0.1.10 v0.1.11 v0.1.12 v0.1.13 v0.1.14 v0.1.15
v0.1.16 v0.1.17 v0.1.18 v0.1.19 v0.1.20 v0.1.21 v0.1.22 v0.1.23
v0.1.24 v0.1.25 v0.1.26 v0.1.27 v0.1.28 v0.1.29 v0.1.30 v0.1.31
v0.1.32 v0.1.33 v0.1.90 v0.1.91 v0.1.92 v0.1.93 v0.1.94 v0.1.95
v0.1.96 v0.1.97 v0.1.98 v0.1.99 v0.1.100 v0.1.101 v0.1.102 v0.1.103
v0.1.104
v0.2.0 v0.2.1 v0.2.2 v0.2.3 v0.2.4 v0.2.5 v0.2.6
v0.3.0 v0.3.1 v0.3.2 v0.3.3 v0.3.4 v0.3.5 v0.3.6 v0.3.7
v0.3.8
v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.4.7
v0.4.8 v0.4.9 v0.4.10 v0.4.11 v0.4.12
v0.5.0 v0.5.1 v0.5.2 v0.5.3 v0.5.4 v0.5.5 v0.5.6 v0.5.7
v0.5.8 v0.5.9 v0.5.10
v0.6.0 v0.6.1 v0.6.2 v0.6.3 v0.6.4 v0.6.5 v0.6.6 v0.6.7
v0.6.8 v0.6.9 v0.6.10 v0.6.11 v0.6.12 v0.6.13 v0.6.14 v0.6.15
v0.6.16 v0.6.17 v0.6.18 v0.6.19 v0.6.20 v0.6.21
v0.7.0 v0.7.1 v0.7.2 v0.7.3 v0.7.4 v0.7.5 v0.7.6 v0.7.7
v0.7.8 v0.7.9 v0.7.10 v0.7.11 v0.7.12
v0.8.0 v0.8.1 v0.8.2 v0.8.3 v0.8.4 v0.8.5 v0.8.6 v0.8.7
v0.8.8 v0.8.9 v0.8.10 v0.8.11 v0.8.12 v0.8.13 v0.8.14 v0.8.15
v0.8.16 v0.8.17 v0.8.18 v0.8.19 v0.8.20 v0.8.21 v0.8.22 v0.8.23
v0.8.24 v0.8.25 v0.8.26 v0.8.27 v0.8.28
v0.9.0 v0.9.1 v0.9.2 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7
v0.9.8 v0.9.9 v0.9.10 v0.9.11 v0.9.12
v0.10.0 v0.10.1 v0.10.2 v0.10.3 v0.10.4 v0.10.5 v0.10.6 v0.10.7
v0.10.8 v0.10.9 v0.10.10 v0.10.11 v0.10.12 v0.10.13 v0.10.14 v0.10.15
v0.10.16 v0.10.17 v0.10.18 v0.10.19 v0.10.20 v0.10.21 v0.10.22 v0.10.23
v0.10.24 v0.10.25 v0.10.26 v0.10.27 v0.10.28 v0.10.29 v0.10.30 v0.10.31
v0.10.32
v0.11.0 v0.11.1 v0.11.2 v0.11.3 v0.11.4 v0.11.5 v0.11.6 v0.11.7
v0.11.8 v0.11.9 v0.11.10 v0.11.11 v0.11.12 v0.11.13 v0.11.14
バージョンを指定してnode.jsをインストール
nodebrewでは2つのインストール方法があります。1つはソースからコンパイル(nodebrew install
)してインストール、2つめはバイナリファイルからインストール(nodebrew install-binary
)する方法です。前者は非常に時間がかかるので特に理由がなければ後者のinstall-binaryをお勧めします。。
今回はstableのv0.10.32
をインストールしてみます。
$ nodebrew install-binary v0.10.32
fetch: http://nodejs.org/dist/v0.10.32/node-v0.10.32-darwin-x64.tar.gz
######################################################################## 100.0%
インストール済みのnode.jsのバージョンを確認する
$ nodebrew list
を使うと、現在マシン上にインストールされているnode.jsのバージョン一覧が表示されます。current: none
というのは現在利用中のバージョンを指しています。
$ nodebrew list
v0.10.32
current: none
インストールしたnode.jsを使う
先ほどインストールしたnode.js v0.10.32を使ってみます。適当にディレクトリを作ってください。
$ mkdir nodebrew.example
$ cd nodebrew.example
$ nodebrew use <version>
を使って利用するバージョンを指定します。
$ nodebrew use v0.10.32
use v0.10.32
設定できているか$ nodebrew list
でcurrentをチェックしてみます。
$ nodebrew list
v0.10.32
current: v0.10.32
node.jsのコマンドでもバージョンを確認しておきましょう。
$ node -v
v0.10.32
設定できていますね。
これで指定したバージョンのnode.jsが利用できるようになります。
運用中のプロジェクトに導入する
nodebrewでバージョンを切り替える場合、切り替え前のnpmでインストールしたパッケージを$ nodebrew use <version>
で指定したnode.jsにも移す必要があります。これもコマンドが用意されているので簡単です。$ nodebrew migrate-package <version>
migrate-packageコマンドでは引き継ぐ元のバージョンを指定します。
$ nodebrew migrate-package v0.10.29
とても簡単ですね!
これで柔軟にバージョンを切り替えられるようになりました。