Posted at

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

More than 5 years have passed since last update.

基本的にはこちら

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でインストールした後です)


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でインストールしたての状態です)


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のパッケージ構成が移行、というか、インストールされていますね。