blog

nodebrewを使ったnode.jsのバージョン管理(Mac)

    • Ryuichi Nonaka
    この記事は書かれてから1年以上経過しており、内容が古い場合があります。

    はじめに

    GruntGulpを使う際にnode.js使ってますよね。npm(Node Packaged Modules)はbundlerのようにグローバル・ローカルインストールできますが、node.js自体のバージョン管理をしていなかったのでnodebrewを使ってみることにしました。rubyのrbenvのようなものですね。

    パッケージ版のnode.jsについて

    パッケージ版のnode.jsをすでにインストールしている場合はアンインストールします。アンインストールするとnodebrew側のnode.jsにnpmのパッケージを再インストールしなければいけません。これだけ注意してください。

    パッケージ版のnode.jsを削除するコマンド

    このページを参考に削除してください。全体をコピペして実行してください。

    lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom \
    | while read i; do
      sudo rm /usr/local/${i}
    done
    sudo rm -rf /usr/local/lib/node \
         /usr/local/lib/node_modules \
         /var/db/receipts/org.nodejs.*
    

    npmのアンインストール

    あと、npmも消してください。

    $ sudo rm -rf ~/.npm
    

    インストール(要Homebrew)

    この記事ではwgetをインストールするためにHomebrewを使います。Homebrewの詳しいインストール方法はここのドキュメントをチェックしてみてください。

    また、Homebrewについて知りたい方はここのまとめHomebrewについてがわかりやすいです。

    nodebrewのインストール

    Homebrewさえあればインストールはとても簡単です。

    $ brew install nodebrew
    ==> Downloading https://github.com/hokaccha/nodebrew/archive/v0.7.4.tar.gz
    ######################################################################## 100.0%
    ==> /usr/local/Cellar/nodebrew/0.7.4/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.7.4: 7 files, 44K, built in 3 seconds
    

    PATHの設定

    インストールが完了したらパスを通します。これを行わないとnode.jsのバージョンが正しく反映されません。bash/zsh共にコンフィグファイルにexport PATH=$HOME/.nodebrew/current/bin:$PATHを追記します。私はzshを使っているので$ vi ~/.zshrcになります。保存できたら$ source .zshrcで反映させます。

    インストールの確認

    コマンドが動くか試してみましょう。 バージョン名が表示されていればインストール成功です。

    $ nodebrew -v
    
    nodebrew 0.7.4
    
    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:
        nodebrew install v0.10.22     Install a specific version number
        nodebrew use v0.10.22         Use a specific version number
    

    nodebrewを試してみる

    それでは、nodebrewを使ってnode.jsをインストールしてみます。

    インストールできるnode.jsのバージョンを確認する

    $ nodebrew ls-remoteを使ってインストールできるnode.jsのバージョン一覧を表示します。以外とたくさんありました。

    $ nodebrew ls-remote
    
    v0.0.1    v0.0.2    v0.0.3    v0.0.4    v0.0.5    v0.0.6
    
    v0.1.0    v0.1.1    v0.1.2    v0.1.3    v0.1.4    v0.1.5    v0.1.6    v0.1.7
    v0.1.8    v0.1.9    v0.1.10   v0.1.11   v0.1.12   v0.1.13   v0.1.14   v0.1.15
    v0.1.16   v0.1.17   v0.1.18   v0.1.19   v0.1.20   v0.1.21   v0.1.22   v0.1.23
    v0.1.24   v0.1.25   v0.1.26   v0.1.27   v0.1.28   v0.1.29   v0.1.30   v0.1.31
    v0.1.32   v0.1.33   v0.1.90   v0.1.91   v0.1.92   v0.1.93   v0.1.94   v0.1.95
    v0.1.96   v0.1.97   v0.1.98   v0.1.99   v0.1.100  v0.1.101  v0.1.102  v0.1.103
    v0.1.104
    
    v0.2.0    v0.2.1    v0.2.2    v0.2.3    v0.2.4    v0.2.5    v0.2.6
    
    v0.3.0    v0.3.1    v0.3.2    v0.3.3    v0.3.4    v0.3.5    v0.3.6    v0.3.7
    v0.3.8
    
    v0.4.0    v0.4.1    v0.4.2    v0.4.3    v0.4.4    v0.4.5    v0.4.6    v0.4.7
    v0.4.8    v0.4.9    v0.4.10   v0.4.11   v0.4.12
    
    v0.5.0    v0.5.1    v0.5.2    v0.5.3    v0.5.4    v0.5.5    v0.5.6    v0.5.7
    v0.5.8    v0.5.9    v0.5.10
    
    v0.6.0    v0.6.1    v0.6.2    v0.6.3    v0.6.4    v0.6.5    v0.6.6    v0.6.7
    v0.6.8    v0.6.9    v0.6.10   v0.6.11   v0.6.12   v0.6.13   v0.6.14   v0.6.15
    v0.6.16   v0.6.17   v0.6.18   v0.6.19   v0.6.20   v0.6.21
    
    v0.7.0    v0.7.1    v0.7.2    v0.7.3    v0.7.4    v0.7.5    v0.7.6    v0.7.7
    v0.7.8    v0.7.9    v0.7.10   v0.7.11   v0.7.12
    
    v0.8.0    v0.8.1    v0.8.2    v0.8.3    v0.8.4    v0.8.5    v0.8.6    v0.8.7
    v0.8.8    v0.8.9    v0.8.10   v0.8.11   v0.8.12   v0.8.13   v0.8.14   v0.8.15
    v0.8.16   v0.8.17   v0.8.18   v0.8.19   v0.8.20   v0.8.21   v0.8.22   v0.8.23
    v0.8.24   v0.8.25   v0.8.26   v0.8.27   v0.8.28
    
    v0.9.0    v0.9.1    v0.9.2    v0.9.3    v0.9.4    v0.9.5    v0.9.6    v0.9.7
    v0.9.8    v0.9.9    v0.9.10   v0.9.11   v0.9.12
    
    v0.10.0   v0.10.1   v0.10.2   v0.10.3   v0.10.4   v0.10.5   v0.10.6   v0.10.7
    v0.10.8   v0.10.9   v0.10.10  v0.10.11  v0.10.12  v0.10.13  v0.10.14  v0.10.15
    v0.10.16  v0.10.17  v0.10.18  v0.10.19  v0.10.20  v0.10.21  v0.10.22  v0.10.23
    v0.10.24  v0.10.25  v0.10.26  v0.10.27  v0.10.28  v0.10.29  v0.10.30  v0.10.31
    v0.10.32
    
    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
    

    バージョンを指定してnode.jsをインストール

    nodebrewでは2つのインストール方法があります。1つはソースからコンパイル(nodebrew install)してインストール、2つめはバイナリファイルからインストール(nodebrew install-binary)する方法です。前者は非常に時間がかかるので特に理由がなければ後者のinstall-binaryをお勧めします。。

    今回はstableのv0.10.32をインストールしてみます。

    $ nodebrew install-binary v0.10.32
    fetch: http://nodejs.org/dist/v0.10.32/node-v0.10.32-darwin-x64.tar.gz
    ######################################################################## 100.0%
    

    インストール済みのnode.jsのバージョンを確認する

    $ nodebrew listを使うと、現在マシン上にインストールされているnode.jsのバージョン一覧が表示されます。current: noneというのは現在利用中のバージョンを指しています。

    $ nodebrew list
    v0.10.32
    
    current: none
    

    インストールしたnode.jsを使う

    先ほどインストールしたnode.js v0.10.32を使ってみます。適当にディレクトリを作ってください。

    $ mkdir nodebrew.example
    $ cd nodebrew.example
    

    $ nodebrew use <version>を使って利用するバージョンを指定します。

    $ nodebrew use v0.10.32
    use v0.10.32
    

    設定できているか$ nodebrew listcurrentをチェックしてみます。

    $ nodebrew list
    v0.10.32
    
    current: v0.10.32
    

    node.jsのコマンドでもバージョンを確認しておきましょう。

    $ node -v
    v0.10.32
    

    設定できていますね。
    これで指定したバージョンのnode.jsが利用できるようになります。

    運用中のプロジェクトに導入する

    nodebrewでバージョンを切り替える場合、切り替え前のnpmでインストールしたパッケージを$ nodebrew use <version>で指定したnode.jsにも移す必要があります。これもコマンドが用意されているので簡単です。$ nodebrew migrate-package <version>migrate-packageコマンドでは引き継ぐ元のバージョンを指定します。

    $ nodebrew migrate-package v0.10.29
    

    とても簡単ですね!
    これで柔軟にバージョンを切り替えられるようになりました。

    コメント・フィードバック