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

  • 95
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

最近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はインストールされていました。
ものによっては失敗するものがあるみたいですが、このオプションを使用することで
グローバルにインストールされたパッケージの移行も簡単にできそうです。