とある環境の構築時に、node.jsが必要になったのだけど、せっかくならバージョンの切り替えが容易に行えるnodebrewを使いたいと。
そこで、Macのパッケージ管理をしているHomebrew経由でnodebrewをインストールして、そこからnode.jsをインストールするのが綺麗だという結論に落ち着きました。
Homebrew経由でnodebrewをインストール
いつも通りのbrewコマンド
$ brew install nodebrew
==> Downloading http://github.com/hokaccha/nodebrew/archive/v0.9.5.tar.gz
==> Downloading from http://codeload.github.com/hokaccha/nodebrew/tar.gz/v0.9.5
######################################################################## 100.0%
==> /usr/local/Cellar/nodebrew/0.9.5/bin/nodebrew setup_dirs
==> Caveats
Add path:
export PATH=$HOME/.nodebrew/current/bin:$PATH
To use Homebrew's directories rather than ~/.nodebrew add to your profile:
export NODEBREW_ROOT=/usr/local/var/nodebrew
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completion has been installed to:
/usr/local/share/zsh/site-functions
==> Summary
? /usr/local/Cellar/nodebrew/0.9.5: 7 files, 36K, built in 4 seconds
PATHの追加
上記のコメント通り、.nodebrewへのPATHを.bash_profileまたは.bashrcに追記します。
$ vi ~/.bashrc
export PATH=$HOME/.nodebrew/current/bin:$PATH
で、再読み込みとバージョン確認で以下のようになれば成功
// 再読み込み
$ source ~/.bashrc
$ nodebrew -v
nodebrew 0.9.5
Usage:
nodebrew help Show this message
nodebrew install <version> Download and install <version> (compile from source)
nodebrew install-binary <version> Download and install <version> (binary file)
nodebrew uninstall <version> Uninstall <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> <value> Set alias
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> using 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
nodebrewでstable(安定版)のnode.jsをインストール
もちろん任意のバージョン指定もできるし、そもそもどのような形式でインストールするかも選択できます。
- nodebrew install-binary [version]
コンパイル済みのバイナリからインストール - node brew install [version]
ソースをコンパイルしてインストール
無論、コンパイル済みのバイナリからのほうが早いのでこちらを選択します。バージョンはnodebrew ls-allコマンドでインストール可能な、またはインストール済みのnode.jsのバージョンを確認できるのでそれを元にバージョン指定します。
今回は安定版(stable)をインストールしたいので、以下のようなコマンドを発行します。
$ nodebrew install-binary stable
Fetching: http://nodejs.org/dist/v6.2.0/node-v6.2.0-darwin-x64.tar.gz
Warning: Failed to create the file
Warning: /Users/xxxxx/.nodebrew/src/v6.2.0/node-v6.2.0-darwin-x64.tar
Warning: .gz: No such file or directory
curl: (23) Failed writing body (0 != 682)
download failed: http://nodejs.org/dist/v6.2.0/node-v6.2.0-darwin-x64.tar.gz
.nodebrewがNo such file or directiroy
ここで若干ハマったのですが、デフォルトでは.nodebrewディレクトリは作成されていないため、node.jsの解凍先がない、と。
当然ですが、nodeコマンドはまだ使えません。
$ node -v
-bash: node: command not found
.nodebrewディレクトリを作成する
手で作ってもよい、というような記事も見かけたけど、nodebrew setupで作れます。
$ nodebrew setup
Fetching nodebrew...
Installed nodebrew in $HOME/.nodebrew
========================================
Export a path to nodebrew:
export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================
// 確認
$ cd .nodebrew;ls
completions default node src
current iojs nodebrew
改めて、stableをインストール
今度は成功するはずです。
$ nodebrew install-binary stable
Fetching: http://nodejs.org/dist/v6.2.0/node-v6.2.0-darwin-x64.tar.gz
######################################################################## 100.0%
Installed successfully
// 確認
$ node -v
-bash: node: command not found
そう、この時点ではまだnodeコマンド使えません。というのも、stable版のnode.jsをインストールしただけで「使用」の設定をしていないためです。
バージョン指定してnode.jsを「使う」
インストール済みのnode.jsを確認する
current: xxxの部分が現在使用中のバージョン。以下は未指定の状態となっています。
$ nodebrew list
v6.2.0
current: none
使用するバージョンを指定する
今回stableでインストールされたのはv6.2.0でした。
$ nodebrew use v6.2.0
use v6.2.0
確認
$ node -v
v6.2.0
以上でnode.jsが使えるようになりましたとさ。