MacのローカルにnodebrewでNode＆npmをインストール

基本的にはこちら
[node.jsのversionを管理するためにnodebrewを利用する](http://qiita.com/sinmetal/items/154e81823f386279b33c)
を参照させていただきました。
#インストール
##取得
```
curl -L git.io/nodebrew | perl - setup

install nodebrew in $HOME/.nodebrew

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

export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================
```
homeディレクトリのnodebrewにインストールしたので、パスをとおしてください的なことを言われている。

私も[参考記事](http://qiita.com/sinmetal/items/154e81823f386279b33c)同様.bash_profileでやってますので、.bash_profileにパスを通す。まんまですが以下を追加する。

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

##nodebrewインストール確認

```
$nodebrew -v
nodebrew 0.7.2
```

##nodebrewでインストールできるnodeのバージョン確認

```
$nodebrew ls-remote
```

##現安定版11.10をインストールしようとしたが(Yeomanが動かなかった？ので、v0.10.26に変更しました）

```
$nodebrew install-binary v0.10.26
```

##インストール済みnodeバージョン確認

```
$nodebrew ls
v0.10.26
current: none
```

current: noneということで現在の使用中バージョンはないと言われる。


##インストールしたv0.10.26を使用することにする

```
$nodebrew use v0.10.26
use v0.10.26
```

```
$nodebrew ls
v0.10.26

current: v0.10.26
```


##nodeコマンドでも一応バージョン確認

```
$node -v
v0.10.26
```


##インストール場所の確認

```
$ which node
/Users/teru1/.nodebrew/current/bin/node
$ which npm
/Users/teru1/.nodebrew/current/bin/npm
```

npmもnodeインストールで一緒に入っているのだね。


#ディレクトリ構成確認
あとで、v0.10系の最新がv0.10.28になったので、それを追加した。
その上で、ディレクトリ構成を確認した。

```
$ nodebrew ls
v0.10.26
v0.10.28

current: v0.10.26
```

```
$ pwd
/Users/teru1/.nodebrew
$ ls
total 48
drwxr-xr-x   8 teru1  staff    272  5 28 13:26 ./
drwxr-xr-x+ 82 teru1  staff   2788  5 28 11:22 ../
drwxr-xr-x   4 teru1  staff    136  3 24 21:27 completions/
lrwxr-xr-x   1 teru1  staff     36  5 28 13:26 current@ -> /Users/teru1/.nodebrew/node/v0.10.26
drwxr-xr-x   3 teru1  staff    102  3 24 21:27 default/
drwxr-xr-x   4 teru1  staff    136  5 28 13:16 node/
-rwxr-xr-x   1 teru1  staff  19936  3 24 21:27 nodebrew*
drwxr-xr-x   5 teru1  staff    170  5 28 13:15 src/
```

currentがv0.10.26です。この状態でいくつかnpmでインストールしました。

その上で、ディレクトリ構成です。それぞれのバーションでディレクトリがありますね。

```
$ pwd
/Users/teru1/.nodebrew/node
$ ls
total 0
drwxr-xr-x  4 teru1  staff  136  5 28 13:16 ./
drwxr-xr-x  8 teru1  staff  272  5 28 13:26 ../
drwxr-xr-x  9 teru1  staff  306  3 26 21:38 v0.10.26/
drwxr-xr-x  9 teru1  staff  306  5 28 13:16 v0.10.28/
```

##v0.10.26(いくつかnpmでインストールした後です）
```shell:v0.10.26/bin
$ pwd
/Users/teru1/.nodebrew/node/v0.10.26/bin
$ ls
total 20512
drwxr-xr-x  10 teru1  staff       340  5 28 11:56 ./
drwxr-xr-x   9 teru1  staff       306  3 26 21:38 ../
lrwxr-xr-x   1 teru1  staff        35  3 26 21:46 bower@ -> ../lib/node_modules/bower/bin/bower
lrwxr-xr-x   1 teru1  staff        39  3 26 21:46 grunt@ -> ../lib/node_modules/grunt-cli/bin/grunt
lrwxr-xr-x   1 teru1  staff        39  3 27 02:29 karma@ -> ../lib/node_modules/karma-cli/bin/karma
-rwxr-xr-x   1 teru1  staff  10470440  2 19 08:43 node*
lrwxr-xr-x   1 teru1  staff        31  3 26 21:39 nodebrew@ -> /Users/teru1/.nodebrew/nodebrew
lrwxr-xr-x   1 teru1  staff        38  3 26 21:38 npm@ -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxr-xr-x   1 teru1  staff        38  5 28 11:56 tsc@ -> ../lib/node_modules/typescript/bin/tsc
lrwxr-xr-x   1 teru1  staff        29  3 26 21:46 yo@ -> ../lib/node_modules/yo/cli.js
```

```v0.10.26/lib/node_modules
$ pwd
/Users/teru1/.nodebrew/node/v0.10.26/lib/node_modules
$ ls
total 0
drwxr-xr-x  13 teru1  staff   442  5 28 11:56 ./
drwxr-xr-x   4 teru1  staff   136  3 26 21:38 ../
drwxr-xr-x  18 teru1  staff   612  3 26 21:46 bower/
drwxr-xr-x  31 teru1  staff  1054  3 26 21:46 generator-angular/
drwxr-xr-x   6 teru1  staff   204  3 26 21:47 generator-karma/
drwxr-xr-x  13 teru1  staff   442  3 26 21:46 grunt-cli/
drwxr-xr-x  17 teru1  staff   578  3 27 01:09 karma/
drwxr-xr-x   6 teru1  staff   204  3 27 02:30 karma-chrome-launcher/
drwxr-xr-x   8 teru1  staff   272  3 27 02:29 karma-cli/
drwxr-xr-x   6 teru1  staff   204  3 27 00:02 karma-jasmine/
drwxr-xr-x  20 teru1  staff   680  3 26 21:38 npm/
drwxr-xr-x   9 teru1  staff   306  5 28 11:56 typescript/
drwxr-xr-x   9 teru1  staff   306  3 26 21:46 yo/
```


##v0.10.28(こちらはnodebrewでインストールしたての状態です）
```shell:v0.10.28/bin
$ pwd
/Users/teru1/.nodebrew/node/v0.10.28/bin
$ ls
total 20520
drwxr-xr-x  5 teru1  staff       170  5 28 13:16 ./
drwxr-xr-x  9 teru1  staff       306  5 28 13:16 ../
-rwxr-xr-x  1 teru1  staff  10494000  5  2 09:54 node*
lrwxr-xr-x  1 teru1  staff        31  5 28 13:16 nodebrew@ -> /Users/teru1/.nodebrew/nodebrew
lrwxr-xr-x  1 teru1  staff        38  5 28 13:16 npm@ -> ../lib/node_modules/npm/bin/npm-cli.js
```

```v0.10.28/lib/node_modules
$ pwd
/Users/teru1/.nodebrew/node/v0.10.28/lib/node_modules
$ ls
total 0
drwxr-xr-x   3 teru1  staff  102  5 28 13:16 ./
drwxr-xr-x   4 teru1  staff  136  5 28 13:16 ../
drwxr-xr-x  22 teru1  staff  748  5 28 13:16 npm/
```
npmくらいですね。

##パッケージの移行
nodebrewのサブコマンドで既存のグローバルインストールパッケージを新たなバージョンのグローバルパッケージとして一気に移行できるようです。

```
nodebrew migrate-package 移行元のバーションを指定
```

ここでは上述してv0.10.26のパッケージを何もインストールしていないv0.10.28のパッケージとして移行してみましょう。

まず、移行したいバーションを使用するように

```
$ nodebrew use v0.10.28
use v0.10.28
$ nodebrew ls
v0.10.26
v0.10.28

current: v0.10.28
```


それから移行するコマンド打ってみる

```
nodebrew migrate-package v0.10.26
```

いろいろインストール作業してくれて、こんな感じで終了しました

```
Install successful:
bower
generator-angular
generator-karma
grunt-cli
karma
karma-chrome-launcher
karma-cli
karma-jasmine
typescript
yo
```
すごい時代だな。

###確認
```v0.10.28/bin
$ pwd
/Users/teru1/.nodebrew/node/v0.10.28/bin
$ ls
total 20560
drwxr-xr-x  10 teru1  staff       340  5 28 14:32 ./
drwxr-xr-x   9 teru1  staff       306  5 28 13:16 ../
lrwxr-xr-x   1 teru1  staff        35  5 28 14:30 bower@ -> ../lib/node_modules/bower/bin/bower
lrwxr-xr-x   1 teru1  staff        39  5 28 14:31 grunt@ -> ../lib/node_modules/grunt-cli/bin/grunt
lrwxr-xr-x   1 teru1  staff        39  5 28 14:32 karma@ -> ../lib/node_modules/karma-cli/bin/karma
-rwxr-xr-x   1 teru1  staff  10494000  5  2 09:54 node*
lrwxr-xr-x   1 teru1  staff        31  5 28 13:16 nodebrew@ -> /Users/teru1/.nodebrew/nodebrew
lrwxr-xr-x   1 teru1  staff        38  5 28 13:16 npm@ -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxr-xr-x   1 teru1  staff        38  5 28 14:32 tsc@ -> ../lib/node_modules/typescript/bin/tsc
lrwxr-xr-x   1 teru1  staff        29  5 28 14:32 yo@ -> ../lib/node_modules/yo/cli.js
```

```v0.10.28/lib/node_modules
$ pwd
/Users/teru1/.nodebrew/node/v0.10.28/lib/node_modules
$ ls
total 0
drwxr-xr-x  13 teru1  staff   442  5 28 14:32 ./
drwxr-xr-x   4 teru1  staff   136  5 28 13:16 ../
drwxr-xr-x  18 teru1  staff   612  5 28 14:30 bower/
drwxr-xr-x  31 teru1  staff  1054  5 28 14:30 generator-angular/
drwxr-xr-x   6 teru1  staff   204  5 28 14:30 generator-karma/
drwxr-xr-x  13 teru1  staff   442  5 28 14:31 grunt-cli/
drwxr-xr-x  17 teru1  staff   578  5 28 14:31 karma/
drwxr-xr-x   6 teru1  staff   204  5 28 14:32 karma-chrome-launcher/
drwxr-xr-x   8 teru1  staff   272  5 28 14:32 karma-cli/
drwxr-xr-x   6 teru1  staff   204  5 28 14:32 karma-jasmine/
drwxr-xr-x  22 teru1  staff   748  5 28 13:16 npm/
drwxr-xr-x   9 teru1  staff   306  5 28 14:32 typescript/
drwxr-xr-x   9 teru1  staff   306  5 28 14:32 yo/
```
ちゃんとv0.10.26のパッケージ構成が移行、というか、インストールされていますね。

<br>
<br>