[Sy] nodebrewを使ってMac (El Capitan) にNode.jsをインストールして管理する
複数バージョンのNode.jsを管理するバージョンマネージャにはいくつかありますが、最近はサーバにもローカルマシンにも nodebrew を採用してます。今回は Homebrew を使ってMac (El Capitan)で複数バージョンのNode.jsをインストールしてみます。
⇒ hokaccha/nodebrew: Node.js version manager(2017/12/12追記) Windows の方はこちらの nodist が便利でした。
⇒ [Sy] nodist を使って Windows 10 に 複数バージョンの Node.js をインストールするnodebrewをインストール
早速nodebrew
をインストールします。Homebrew
を使って簡単にインストールできます。
$ brew install nodebrew
インストールが終わったら、PATHの設定を.zshrc
または.bashrc
に追記しておきましょう。ぼくはzshを使ってるので、.zshrc
に以下を追記しています。
export PATH=$HOME/.nodebrew/current/bin:$PATH
PATHの設定を追記できたら、一度読み込み直して設定を反映させます。
$ source ~/.zshrc
または
$ source ~/.bashrc
これでnodebrewのインストールは終わりです。
nodebrewのhelpを見てみる
確認も含めて、helpを見てみます。
$ nodebrew help
nodebrew 0.9.6
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
のバージョンが表示されてます。(この場合は0.9.6ですね)
Usageのところにはコマンドがたくさんありますが、とりあえず最低限つぎの3つを覚えておけば使えます。
nodebrew ls-remote
インストールできるバージョンを検索して一覧表示nodebrew install-binary <version>
指定した<version>のNode.jsをインストールnodebrew use <version>
Macで使うNode.jsを指定した<version>に切り替える
それぞれのコマンドの動きを見てみます。
インストールできるバージョンを検索して一覧表示(ls-remote)
「nodebrewをインストールしたし、Node.jsをインストールしよう」と思っても、インストールできるバージョンがわからないとできないので、まずはls-remote
でインストール可能なバージョンを調べます。
コマンドを実行してみると、
$ nodebrew ls-remote
v0.0.1 v0.0.2 v0.0.3 v0.0.4 v0.0.5 v0.0.6
・
・
・
v4.0.0 v4.1.0 v4.1.1 v4.1.2 v4.2.0 v4.2.1 v4.2.2 v4.2.3
v4.2.4 v4.2.5 v4.2.6 v4.3.0 v4.3.1 v4.3.2 v4.4.0 v4.4.1
v4.4.2 v4.4.3 v4.4.4 v4.4.5
v5.0.0 v5.1.0 v5.1.1 v5.2.0 v5.3.0 v5.4.0 v5.4.1 v5.5.0
v5.6.0 v5.7.0 v5.7.1 v5.8.0 v5.9.0 v5.9.1 v5.10.0 v5.10.1
v5.11.0 v5.11.1
v6.0.0 v6.1.0 v6.2.0 v6.2.1 v6.2.2
io@v1.0.0 io@v1.0.1 io@v1.0.2 io@v1.0.3 io@v1.0.4 io@v1.1.0 io@v1.2.0 io@v1.3.0
・
・
・
・・・のようにメジャーバージョンごと(v0.x系はマイナーバージョンごと)にある程度まとめられた形で一覧表示されます。細かいところですが、他のバージョンマネージャは縦にずらっと並ぶものが多いので、気が利いてるなぁと思いました。
io.js
(一時期Node.jsから分かれて開発されていたもの。Node.jsのv4.0.0で再び統合)もインストール可能です。まぁ今更io.jsをインストールする機会はなさそうですけど。
Node.jsのメジャーバージョンの意味
Node.jsのメジャーバージョン(最初の数字)は、奇数のものが「最新機能版」で偶数のものが「長期サポート版」になります。なので、長期的に開発・運用が必要な場合はv4.xやv6.xを選択すると良いです。Node.jsの新しい機能を試したい、などいつでもアップデートできるような場合はv5.xを選択するのもいいと思います。
インストールしたメジャーバージョンが決まってる場合などは、以下のようにgrepコマンドにパイプで渡してあげるとすっきりします。
$ nodebrew ls-remote | grep v6
v6.0.0 v6.1.0 v6.2.0 v6.2.1 v6.2.2
このコマンドの意味は、 nodebrew ls-remote
の出力(先ほどのすべてのバージョンのリスト)をgrep v6
(「v6」という文字が含まれる行を検索して出力する)の入力として渡す ということになります。
指定した<version>のNode.jsをインストール(install-binary <version>)
インストールしたいバージョンを決めたら、実際にNode.jsをインストールします。
例として、v6.0.0をインストールする場合は、次のようなコマンドを実行します。
$ nodebrew install-binary v6.0.0
Fetching: https://nodejs.org/dist/v6.0.0/node-v6.0.0-darwin-x64.tar.gz
######################################################################## 100.0%
Installed successfully
このように、「Installed successfully」と表示されれば成功です。
ただこの段階ではまだnode
もnpm
も実行できません。command not found
と出るはずです。
$ node -v
zsh: command not found: node
$ npm -v
zsh: command not found: npm
nodebrew
に限った話ではないですが、バージョンマネージャはあくまでも「複数のバージョンを管理するためのもの」なので、「どのバージョンを今使いたいのか」を教えてあげる必要があります。nodebrew
でその設定をするためのコマンドが次のnodebrew use
になります。
Macで使うNode.jsを指定した<version>に切り替える(use <version>)
ということで、先ほどインストールしたNode.jsのv6.0.0
を有効にします。
$ nodebrew use v6.0.0
use v6.0.0
これでNode.jsが使える状態になりました。試しに先ほどcommand not found
になったnode
とnpm
を実行してみます。
$ node -v
v6.0.0
$ npm -v
3.8.6
このようにバージョンがそれぞれ表示されればOKです。
以降、他のバージョンをインストールして使いたい場合は、install-binary
でインストールして、use
で設定すれば(切り替えれば)使えるようになります。
以上、Macでのnodebrew
を使ったNode.jsの複数バージョン管理についてでした。