Node.js

nodebrewでNode.js( io.js )を管理する

More than 3 years have passed since last update.

最近Node.jsを使うことが多いので自分の復習も兼ねてのメモです。


nodebrewとは

nodebrewとは、Node.js( io.js )のバージョンを管理するためのツールです。


nodebrewを使うことで、任意のバージョンのNode.jsを簡単にインストールすることができたり、

バージョンの切り替えをおこなうことができます。

Node.jsのバージョンを管理するためのツールとしては他にnvmとかnbenvがありますが今回はnodebrewを使ってみました。


nodebrewのインストール

インストールは簡単で、黒い画面で以下のように1行入力するだけです。


shell

$ curl -L git.io/nodebrew | perl - setup

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
100 22630 100 22630 0 0 9868 0 0:00:02 0:00:02 --:--:-- 9868
fetching nodebrew...
install nodebrew in $HOME/.nodebrew

========================================
Add path:

export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================


インストールが終わると、パスを追加してねと言っているのでシェルの設定ファイル( .zshrcとか.bashrcとか )に追加します。


.bashrc

export PATH=$HOME/.nodebrew/current/bin:$PATH


追加が終わったら、設定ファイルを再読み込みします。


shell

$ source .bashrc


nodebrewを実行してhelp画面が表示されたらインストール成功です。


shell

$ nodebrew

nodebrew 0.8.1

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:
# install from binary
nodebrew install-binary v0.10.22

# use a specific version number
nodebrew use v0.10.22

# io.js
nodebrew install-binary io@v1.0.0
nodebrew use io@v1.0.0



Node.jsをインストールする

Node.jsをインストールするにはバイナリを直接インストールする方法と

ソースをコンパイルしてインストールする方法があります。

以下のコマンドは、Node.jsのv0.12.2をバイナリからインストールする例です。


shell

$ nodebrew install-binary v0.12.2

fetch: http://nodejs.org/dist/v0.12.2/node-v0.12.2-darwin-x64.tar.gz
######################################################################## 100.0%
Install successful


以下のようにソースからインストールすることも可能です。

( 結構時間かかります。。 )


shell

$ nodebrew install v0.12.2

...
...


ローカルにインストールされているバージョンを確認するにはlsオプションを使用します。


shell

$ nodebrew ls

v0.12.2

current: none


また、リモートで管理されているNode.js( io.js )のバージョンを調べるにはls-remoteオプションを使用します。バージョンを指定してインストールする場合は、ここからインストールしたいバージョンを探しましょう。io.jsを指定することもできます。


shell

$ nodebrew ls-remote

v0.0.1 v0.0.2 v0.0.3 v0.0.4 v0.0.5 v0.0.6
...
v0.12.0 v0.12.1 v0.12.2
...
io@v1.6.0 io@v1.6.1 io@v1.6.2 io@v1.6.3 io@v1.6.4

io@v1.7.1


今回はバージョンを直接指定してインストールしましたが、stableバージョンを指定してインストールしたり最新のバージョンを指定してインストールすることもできます。


shell

$ nodebrew install-binary stable    # stableバージョンをインストール

$ nodebrew install-binary latest # 最新バージョンをインストール
$ nodebrew install-binary v0.12.x # v0.12系の最新バージョンをインストール
$ nodebrew install-binary 0.12.2 # vを省略できる
$ nodebrew install-binary io@stable # io.jsのstableバージョンをインストール
$ nodebrew install-binary io@latest # io.jsの最新バージョンをインストール


使用するNode.js( io.js )のバージョンを指定する

ここまでで、ローカルにNode.jsをインストールすることができましたが、これだけではまだNode.jsを使用することができません。以下のように使用するNode.jsのバージョンを指定する必要があります。


shell

$ nodebrew ls # ローカルにインストールされているバージョンを確認

v0.12.2
io@v1.6.4
io@v1.7.1

current: none # バージョンが指定されていないためnoneになっている

$ nodebrew use v0.12.2 # 使用するバージョンを指定する

use v0.12.2


Node.jsが使用できるようになったか確認するために、以下のコマンドを実行してみます。


shell

$ node -e 'console.log("Hello Node.js");'

Hello Node.js


Hello Node.jsと表示されていれば成功です!


そのほかのオプション

nodebrewのそのほかのオプションをいくつか紹介します。



  • uninstall 指定したバージョンをアンインストールする


shell

$ nodebrew uninstall io@v1.7.1

io@v1.7.1 uninstalled




  • selfupdate nodebrewをアップデートする


shell

$ nodebrew selfupdate

fetching nodebrew...
Update successful




  • alias バージョン名にエイリアスをはる


shell

$ nodebrew alias v12 0.12.2 # エイリアス名, バージョン

v12 -> v0.12.2

$ nodebrew use v12 # v12で指定できるようになる

use v0.12.2




  • unalias エイリアスをはずす


shell

$ nodebrew unalias v12

remove v12




  • migrate-package 指定したバージョンのnpm install -gでインストールされたパッケージをcurrentにもインストールする

ためしてみる。とりあえずNode.jsのv0.12.2とv0.11.16をインストール


shell

$ nodebrew binary-install v0.12.2

$ nodebrew binary-install v0.11.16
$ nodebrew use v0.11.16

適当にexpressとgulpをインストール


shell

$ npm install -g express gulp

... # 長いから省略
$npm ls -g # 入ってるか確認
... # 長いから省略

使用するバージョンを変更しmigrate-packageしてみる


shell

$ nodebrew use v0.12.2

$ nodebrew migrate-package v0.11.16
... # インストールがはじまった

gulpのインストールでこけましたがexpressはインストールされていました。

ものによっては失敗するものがあるみたいですが、このオプションを使用することで

グローバルにインストールされたパッケージの移行も簡単にできそうです。