15
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

node.jsのバージョン管理 - Nodebrewのインストールと基本操作

Last updated at Posted at 2015-08-27

数多の類似記事があるから放置していたのですがアップデートしました。

今までの記事でたびたび書いておいたのですが、参照するためにもひとつの記事にまとまっていた方がよいなと思い、Nodebrew関連について書いておきます。

Nodebrewのインストール方法について

Nodebrew自体も管理をラクにするためHomebrewでインストールしたいと思います。

curlでのインストール推奨です。

Nodebrewのインストール

curlコマンドでインストールしたあとにパスを通すという2ステップです。
パスを通す際にさわるファイルがシェルの種類(bashとかzshとか)によって違いますので、その部分は適宜変更ください。
bashとかzshとかわからない人は以下のコマンドをターミナルで入力すればわかるはずです。

echo $SHELL

ぼくの場合は、/usr/local/bin/zshと返ってくるのでzshです。
それではbrewでnodebrewをインストールしましょう。

curl -L git.io/nodebrew | perl - setup

vim ~/.zshrc # bashを使っている人は~/.bash_profileに適宜変更ください。

insertモードで、以下を貼り付けて、エスケープして保存して終了 :wq

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

設定ファイルを読み込み直します。別にターミナル再起動でも問題ないです。

source ~/.zshrc # bashを使っている人は~/.bash_profileに適宜変更ください。

動作確認をしてみます。

nodebrew help

Nodebrewを使ってみる

Nodebrewでnode.jsあるいはio.jsをインストールする際は、インストールしてユーズという2ステップを踏みます。複数バージョン使い分けできるので、別のバージョンにというときは他のものをユーズって感じです。

インストールする

インストールできる一覧を確認してみましょう。ちなみにnodebrewは安定版(stable)もしくは最新版(latest)を指名してインストールすることもできますので、特にインストールするバージョンはなんでもよいという方はそちらをどうぞ。

nodebrew ls-remote

### 中略 ###

v0.10.32  v0.10.33  v0.10.34  v0.10.35  v0.10.36  v0.10.37  v0.10.38  v0.10.39
v0.10.40

v0.11.0   v0.11.1   v0.11.2   v0.11.3   v0.11.4   v0.11.5   v0.11.6   v0.11.7
v0.11.8   v0.11.9   v0.11.10  v0.11.11  v0.11.12  v0.11.13  v0.11.14  v0.11.15
v0.11.16

v0.12.0   v0.12.1   v0.12.2   v0.12.3   v0.12.4   v0.12.5   v0.12.6   v0.12.7


### 中略 ###

io@v1.8.1 io@v1.8.2 io@v1.8.3 io@v1.8.4

io@v2.0.0 io@v2.0.1 io@v2.0.2

io@v2.1.0

io@v2.2.0 io@v2.2.1

io@v2.3.0 io@v2.3.1 io@v2.3.2 io@v2.3.3 io@v2.3.4

io@v2.4.0

io@v2.5.0

io@v3.0.0

io@v3.1.0

io@v3.2.0

このズラーっと並んだ一覧からインストールするのですが、インストールにはnodebrew install <version>nodebrew install-binary <version>のふたつのコマンドがあります。installだけの場合はソースから引っ張ってきて、install-binaryの場合はバイナリで落としてくると。前者はコンパイルがあるので割と遅いです。 体感70倍近い時間がかかります。
後者の方が公式でも推奨されているみたいですので、後者を使っていきます。

nodebrew install-binary io@v3.2.0 #io.js v3.2.0をインストール

これにてインストール完了です。
Kobito.Wt3J0K.png

使用するバージョンの選択

あたりまえといえばあたりまえですが、Nodebrewを使うことで複数のバージョンのnode.jsがインストールされている状態なので、どのバージョンを使うかは指定しないとわかんないですよね。
まずは、ローカルにインストールされているバージョンを確認してみましょう。

nodebrew ls
v0.12.6
io@v1.8.3
io@v2.0.0
io@v2.4.0
io@v3.0.0
io@v3.2.0

current: io@v3.0.0 # 現在使用中のもの

あたらしくインストールしたio@v3.2.0を使うにはuseを使う

$ nodebrew use io@v3.2.0

確認してみましょう。

nodebrew ls
v0.12.6
io@v1.8.3
io@v2.0.0
io@v2.4.0
io@v3.0.0
io@v3.2.0

current: io@v3.2.0 # 変わった。

設定の引き継ぎ

これがあるからnodebrew使うようになりましたというくらい便利なコマンド(だと思ってる)。
上の例のように、バージョンを変えたあとには自分で入れたnpmモジュールたちは未インストールの状態です。
しかし、それを引き継ぐことができるコマンドが、nodebrew migrate-packageです

nodebrew migrate-package <version>

これで、指定したバージョンから現在のバージョンに引き継ぎます。
実際にやってみたところこうなりました。

Kobito.wL2eCU.png

いつもgulpとyoはインストールにコケるので、何事もなくこの2つはnpm i -g gulpとかいった感じでインストールしてます。

このコマンドは本当に便利で、nodeに脆弱性が見つかったときとか乗り換えるための障壁を低くしてくれます。

ここまでのコマンドまとめ

ここまで使ったコマンドをまとめてみました。割とよく使うのばかりです。

コマンド 説明
nodebrew help helpコマンド
nodebrew ls-remote インストールできるバージョンの一覧を表示
nodebrew install-binary <version> 指定したバージョンのインストール
nodebrew ls ローカルの一覧を表示
nodebrew use <version> 使用するバージョンの選択
nodebrew migrate-package <version> 設定引き継ぎ

その他の操作

コマンド 説明
nodebrew list lsと挙動はいっしょ
nodebrew ls-all リモートとローカルのすべてのバージョンを表示
nodebrew install <version> 指定したバージョンのインストール(遅い)
nodebrew uninstall <version> 指定したバージョンのアンインストール
nodebrew clean <version> | all 指定したバージョンのソースの削除
nodebrew alias <key> <version> 指定したバージョンにkeyというエイリアスの作成
nodebrew unalias <key> エイリアスの解除
nodebrew exec <version> -- <command> バージョンを指定してコマンドを実行
nodebrew selfupdate nodebrew自体のアップデート

nodebrewのバージョンもHomebrewでアップグレードしてるので、selfupdateはほとんど使わないです。
それとメモ程度に書いておきますが、cleanとuninstallは別物ですので、特定のバージョンを完全削除したい場合は、どちらも実行しましょう。
例を挙げるとこんな感じですかね。

Kobito.kO77Mm.png

Kobito.O1VIEI.png

わかりますかね。nodebrew listではv1.2.0はもう存在しません(uninstall済)が、srcを消し忘れていて残っています。これは単なるcleanのし忘れですので、この後にしておきましたと。

参考

GitHub - nodebrew

割とこの記事を書くためにドキュメントを読んだら、さすがにしっかり出来ていてこの記事の存在価値を疑いましたとさ。

前記事 - どんなエディタでもEditorConfigを使ってコードの統一性を高める

15
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?