基本的にはこちら
node.jsのversionを管理するためにnodebrewを利用する
を参照させていただきました。
#インストール
##取得
curl -L git.io/nodebrew | perl - setup
install nodebrew in $HOME/.nodebrew
========================================
Add path:
export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================
homeディレクトリのnodebrewにインストールしたので、パスをとおしてください的なことを言われている。
私も参考記事同様.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でインストールした後です)
$ 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
$ 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でインストールしたての状態です)
$ 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
$ 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
すごい時代だな。
###確認
$ 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
$ 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のパッケージ構成が移行、というか、インストールされていますね。