最近Node.jsを使うことが多いので自分の復習も兼ねてのメモです。
nodebrewとは
nodebrewとは、Node.js( io.js )のバージョンを管理するためのツールです。
nodebrewを使うことで、任意のバージョンのNode.jsを簡単にインストールすることができたり、
バージョンの切り替えをおこなうことができます。
Node.jsのバージョンを管理するためのツールとしては他にnvmとかnbenvがありますが今回はnodebrewを使ってみました。
nodebrewのインストール
インストールは簡単で、黒い画面で以下のように1行入力するだけです。
$ 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とか )に追加します。
export PATH=$HOME/.nodebrew/current/bin:$PATH
追加が終わったら、設定ファイルを再読み込みします。
$ source .bashrc
nodebrewを実行してhelp画面が表示されたらインストール成功です。
$ 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をバイナリからインストールする例です。
$ 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
以下のようにソースからインストールすることも可能です。
( 結構時間かかります。。 )
$ nodebrew install v0.12.2
...
...
ローカルにインストールされているバージョンを確認するにはls
オプションを使用します。
$ nodebrew ls
v0.12.2
current: none
また、リモートで管理されているNode.js( io.js )のバージョンを調べるにはls-remote
オプションを使用します。バージョンを指定してインストールする場合は、ここからインストールしたいバージョンを探しましょう。io.jsを指定することもできます。
$ 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バージョンを指定してインストールしたり最新のバージョンを指定してインストールすることもできます。
$ 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のバージョンを指定する必要があります。
$ 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が使用できるようになったか確認するために、以下のコマンドを実行してみます。
$ node -e 'console.log("Hello Node.js");'
Hello Node.js
Hello Node.js
と表示されていれば成功です!
そのほかのオプション
nodebrewのそのほかのオプションをいくつか紹介します。
-
uninstall
指定したバージョンをアンインストールする
$ nodebrew uninstall io@v1.7.1
io@v1.7.1 uninstalled
-
selfupdate
nodebrewをアップデートする
$ nodebrew selfupdate
fetching nodebrew...
Update successful
-
alias
バージョン名にエイリアスをはる
$ nodebrew alias v12 0.12.2 # エイリアス名, バージョン
v12 -> v0.12.2
$ nodebrew use v12 # v12で指定できるようになる
use v0.12.2
-
unalias
エイリアスをはずす
$ nodebrew unalias v12
remove v12
-
migrate-package
指定したバージョンのnpm install -g
でインストールされたパッケージをcurrentにもインストールする
ためしてみる。とりあえずNode.jsのv0.12.2とv0.11.16をインストール
$ nodebrew binary-install v0.12.2
$ nodebrew binary-install v0.11.16
$ nodebrew use v0.11.16
適当にexpressとgulpをインストール
$ npm install -g express gulp
... # 長いから省略
$npm ls -g # 入ってるか確認
... # 長いから省略
使用するバージョンを変更しmigrate-package
してみる
$ nodebrew use v0.12.2
$ nodebrew migrate-package v0.11.16
... # インストールがはじまった
gulpのインストールでこけましたがexpressはインストールされていました。
ものによっては失敗するものがあるみたいですが、このオプションを使用することで
グローバルにインストールされたパッケージの移行も簡単にできそうです。