Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
84
Help us understand the problem. What is going on with this article?
@sawapi

nodebrewでNode.js( io.js )を管理する

More than 5 years have passed since last update.

最近Node.jsを使うことが多いので自分の復習も兼ねてのメモです。

nodebrewとは

nodebrewとは、Node.js( io.js )のバージョンを管理するためのツールです。

nodebrewを使うことで、任意のバージョンのNode.jsを簡単にインストールすることができたり、
バージョンの切り替えをおこなうことができます。
Node.jsのバージョンを管理するためのツールとしては他にnvmとかnbenvがありますが今回はnodebrewを使ってみました。

nodebrewのインストール

インストールは簡単で、黒い画面で以下のように1行入力するだけです。

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

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
100 22630  100 22630    0     0   9868      0  0:00:02  0:00:02 --:--:--  9868
fetching nodebrew...
install nodebrew in $HOME/.nodebrew

========================================
Add path:

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

インストールが終わると、パスを追加してねと言っているのでシェルの設定ファイル( .zshrcとか.bashrcとか )に追加します。

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

追加が終わったら、設定ファイルを再読み込みします。

shell
$ source .bashrc

nodebrewを実行してhelp画面が表示されたらインストール成功です。

shell
$ nodebrew
nodebrew 0.8.1

Usage:
    nodebrew help                         Show this message
    nodebrew install <version>            Download and install a <version> (compile from source)
    nodebrew install-binary <version>     Download and install a <version> (binary file)
    nodebrew uninstall <version>          Uninstall a 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> <version>        Set alias to version
    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> 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

Node.jsをインストールする

Node.jsをインストールするにはバイナリを直接インストールする方法と
ソースをコンパイルしてインストールする方法があります。
以下のコマンドは、Node.jsのv0.12.2をバイナリからインストールする例です。

shell
$ nodebrew install-binary v0.12.2

fetch: http://nodejs.org/dist/v0.12.2/node-v0.12.2-darwin-x64.tar.gz
######################################################################## 100.0%
Install successful

以下のようにソースからインストールすることも可能です。
( 結構時間かかります。。 )

shell
$ nodebrew install v0.12.2

...
...

ローカルにインストールされているバージョンを確認するにはlsオプションを使用します。

shell
$ nodebrew ls
v0.12.2

current: none

また、リモートで管理されているNode.js( io.js )のバージョンを調べるにはls-remoteオプションを使用します。バージョンを指定してインストールする場合は、ここからインストールしたいバージョンを探しましょう。io.jsを指定することもできます。

shell
$ nodebrew ls-remote

v0.0.1    v0.0.2    v0.0.3    v0.0.4    v0.0.5    v0.0.6
...
v0.12.0   v0.12.1   v0.12.2
...
io@v1.6.0 io@v1.6.1 io@v1.6.2 io@v1.6.3 io@v1.6.4

io@v1.7.1

今回はバージョンを直接指定してインストールしましたが、stableバージョンを指定してインストールしたり最新のバージョンを指定してインストールすることもできます。

shell
$ nodebrew install-binary stable    # stableバージョンをインストール
$ nodebrew install-binary latest    # 最新バージョンをインストール
$ nodebrew install-binary v0.12.x   # v0.12系の最新バージョンをインストール
$ nodebrew install-binary 0.12.2    # vを省略できる
$ nodebrew install-binary io@stable # io.jsのstableバージョンをインストール
$ nodebrew install-binary io@latest # io.jsの最新バージョンをインストール

使用するNode.js( io.js )のバージョンを指定する

ここまでで、ローカルにNode.jsをインストールすることができましたが、これだけではまだNode.jsを使用することができません。以下のように使用するNode.jsのバージョンを指定する必要があります。

shell
$ nodebrew ls # ローカルにインストールされているバージョンを確認

v0.12.2
io@v1.6.4
io@v1.7.1

current: none # バージョンが指定されていないためnoneになっている

$ nodebrew use v0.12.2 # 使用するバージョンを指定する

use v0.12.2

Node.jsが使用できるようになったか確認するために、以下のコマンドを実行してみます。

shell
$ node -e 'console.log("Hello Node.js");'

Hello Node.js

Hello Node.jsと表示されていれば成功です!

そのほかのオプション

nodebrewのそのほかのオプションをいくつか紹介します。

  • uninstall 指定したバージョンをアンインストールする
shell
$ nodebrew uninstall io@v1.7.1

io@v1.7.1 uninstalled
  • selfupdate nodebrewをアップデートする
shell
$ nodebrew selfupdate


fetching nodebrew...
Update successful
  • alias バージョン名にエイリアスをはる
shell
$ nodebrew alias v12 0.12.2 # エイリアス名, バージョン

v12 -> v0.12.2

$ nodebrew use v12 # v12で指定できるようになる

use v0.12.2
  • unalias エイリアスをはずす
shell
$ nodebrew unalias v12

remove v12
  • migrate-package 指定したバージョンのnpm install -gでインストールされたパッケージをcurrentにもインストールする

ためしてみる。とりあえずNode.jsのv0.12.2とv0.11.16をインストール

shell
$ nodebrew binary-install v0.12.2
$ nodebrew binary-install v0.11.16
$ nodebrew use v0.11.16

適当にexpressとgulpをインストール

shell
$ npm install -g express gulp
... # 長いから省略
$npm ls -g # 入ってるか確認
... # 長いから省略

使用するバージョンを変更しmigrate-packageしてみる

shell
$ nodebrew use v0.12.2
$ nodebrew migrate-package v0.11.16
... # インストールがはじまった

gulpのインストールでこけましたがexpressはインストールされていました。
ものによっては失敗するものがあるみたいですが、このオプションを使用することで
グローバルにインストールされたパッケージの移行も簡単にできそうです。

84
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
sawapi

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
84
Help us understand the problem. What is going on with this article?