初心者向け:nodebrewでNode.jsをバージョン管理し、環境を整える(MacOSX)
最近、新しいMacbookProにNode.jsを入れることが2回もあったため、ものすごく今更な話題ではありますがその時の手順のメモを残します。
Node.jsのパッケージをそのまま入れるとプロジェクトごとにバージョンが違っていたり等諸々面倒なことがあるので、後にトラブルにならないよう、バージョン管理出来る環境にすることをオススメします。なお、Node.jsのバージョン管理にはnodebrew を使用し、インストールするのにHomebrew を使用します。
本記事ではHomebrew を経由してnodebrew をインストールし、nodebrew からNode.jsをインストールする手順を解説します。文章にするとややこしく見えますが、インストール自体はとても簡単なので、Node.jsをバージョン管理していない方は是非この機会にお試しください。
また、既にNode.jsのパッケージ版の方をインストールしている方は、先にパッケージ版のアンインストールをしてからお試しください。
2015.2.2追記:OS X El Capitanをご使用の方
El Capitanを使用していると、Homebrew を経由してnodebrew をインストールすると、Node.jsのインストールがうまくいかないようです。そのため、El Capitan を使用している方はHomebrew を経由せず、Homebrew を経由しないで、nodebrew をインストールする場合から実行してください。そこから先の手順は一緒です。
Homebrew をインストールするまで
Homebrew とはMac OSX用のパッケージマネージャです。nodebrew でnode.jsのバージョン管理をしたいだけならHomebrew がなくても別に問題ないですが、Homebrew があると便利なので私はHomebrew 経由で導入しています。
なお、Homebrew 入れたくないけどnodebrew は入れたいって方はこの項目をスキップしてこちらへどうぞ。
Homebrew をインストールするには、次の3つのステップを踏みます。
- Java のインストール
- Xcode のインストール
- Homebrew のインストール
Javaの インストール
java -version
というコマンドをターミナルから実行します。Java がインストールされていればバージョンを表示、されていなければインストールするか聞かれます。
$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
もし未インストールの場合は出現したポップアップの[インストール]を押して、Java のインストールをしてください。
Xcodeのインストール
App storeからXcodeのダウンロードが出来ますので、そちらからダウンロードしてください。
Homebrew のインストール
JavaとXcodeのインストールが終わったら、Homebrewをインストールします。公式サイトのInstall Homebrewの文字の下にあるコードをコピーし、ターミナルに貼り付けて実行すればOKです。
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
※このコードは変更されることもあるため、公式サイトのコードを貼り付けたほうが無難です。
インストールが完了したら
Homebrew が無事にインストールされたら、ターミナル上でbrew doctor
と打ちコマンドを実行します。
$ brew doctor
Your system is ready to brew.
こんな感じで、Your system…と出たら準備完了です。
※もしもbrew doctor
のコマンドを実行後、エラーが出てしまった場合は、原因を一つずつ探して潰します。ググってみると、OSのアップデート後とかにたまにあるようです。
nodebrew をインストールするまで
Homebrew 経由でnodebrew をインストール
Homebrew をインストールしたら、次はHomebrewのコマンドを使ってnodebrewをインストールします。
$ brew search nodebrew
nodebrew
$ brew install nodebrew
=> Downloading https://github.com/hokaccha/nodebrew/archive/v0.8.1.tar.gz
==> Downloading from https://codeload.github.com/hokaccha/nodebrew/tar.gz/v0.8.1
######################################################################## 100.0%
==> /usr/local/Cellar/nodebrew/0.8.1/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.8.1: 7 files, 48K, built in 3 seconds
せっかくなのでbrew search
してみました。brew install nodebrew
を実行すると、nodebrew がインストールされます。
Homebrew を経由しないで、nodebrew をインストールする場合
Homebrewは使わないけど、nodebrew 入れたいっていう方向け。あとOS X El Capitan以降の方はこちらからはじめてください。上記の項目でnodebrew をインストールした方はこの項目はスキップしてください。
普通にnodebrew をインストールするには、ターミナルにcurlコマンドでnodebrewをインストールします。
$ curl -L git.io/nodebrew | perl - setup
コマンド実行後、インストールが開始されます。
インストールが完了したら
nodebrew がインストールされているか確認します。
$ nodebrew
nodebrew 0.8.1
Usage:
nodebrew help Show this message
nodebrew install Download and install a (compile from source)
nodebrew install-binary Download and install a (binary file)
(省略)
こんな感じになってれば無事にインストールされています。
環境設定ファイルにnodebrew のパスを通す
nodeのバージョンが正しく適用されるように環境設定にパスを通しておきます。bash /zsh 共にコンフィグファイルに書きます。ここではbash_profile を使用した例をご紹介します。
※zsh を使用している方はzsh にパスを通してください。
$ vi ~/.bash_profile
vi
コマンドはターミナル上で動作するテキストエディタで、少々使い勝手が違って困惑しますが、手順さえ守れば大丈夫です。
上記のコマンドを実行すると画面が切り替わりますが、初期状態はコマンドモードでテキスト入力は出来ません。
↓キーなどでファイルの末尾に移動し、iキーを押して入力モードに切り替え、以下のコードを追記してください。
$ export PATH=$HOME/.nodebrew/current/bin:$PATH
追記し終わったらescキーを押して、コマンドモードに戻します。その後、:wq
と入力してEnterキーを押します。これでファイルが保存され、元のターミナルの画面に戻ってきます。
元のターミナルの画面に戻ってきたら、即時反映させるために下記のコマンドを実行します。
$ source ~/.bash_profile
これでパスの設定は完了です。
追記し終わったあとに、E45 readonly option is set (add ! to override) というエラーが出たら
その名の通り上書き禁止になってしまっているので、強制的に上書きします。エラーが出た状態からEnterキーを一回押し、以下をターミナルへペーストします。
$ :w !sudo tee %
現在開いているファイルに対して、tee コマンドで強制的に上書きします。上記を実行後、:q!
と入力します。これで編集内容は保存されて終了します。
次回bashを開く際にE325: ATTENTION という警告の画面が出たら、選択肢が出るまでEnterキーを押し続けて、最後の選択でdキーを押して、警告ファイルを削除するようにしてください。
nodebrew から Node.jsをインストールする
インストールには、ソースをダウンロードしてコンパイルするinstall
と、コンパイル済みのバイナリをインストールするinstall-binary
とありますが、前者だととても時間がかかるので後者を採用します。
$ nodebrew install-binary stable
fetch: http://nodejs.org/dist/v4.0.0/node-v4.0.0-darwin-x64.tar.gz
######################################################################## 100.0%
Install successful
無事にインストールできました!
nodebrew をインストールし終わったら
Node.jsの使用するバージョンを指定する
$ nodebrew use stable
use v4.0.0
このようにnodebrew use
の後に使用するバージョンを書くことで、使用するバージョンを決定します。なお、上記で書いているstable とは現在のNode.jsの安定版を自動で反映してくれるコードです。
その後、node -v
でバージョンの確認をしてみます。ついでにnodebrew ls
今入ってるバージョンの確認もしてみます。
$ node -v
v4.0.0
$ nodebrew ls
v0.12.0
v0.12.2
v0.12.4
v0.12.5
v4.0.0
current: v4.0.0
current
は現在使用中のバージョンを指します。
ひとまずはこれで、nodebrew を用いたNode.jsのバージョン管理は完了です。おつかれさまでした!
違うバージョンもインストールして指定する
基本はnodebrew use stable
で問題ないのですが、プロジェクトごとに必要なバージョンがある等の理由で違うバージョンが必要な時は、以下のようにコマンドを打ちます。
$ nodebrew install-binary v0.10.40
$ nodebrew use v0.10.40
use v0.10.40
$ node -v
v0.10.40
現在使用しているNode.jsのバージョンが切り替わりました。
こんな感じでnodebrewを使用し、必要なバージョンに切り替えていきます。
既にNode.jsをパッケージから入れちゃってる人向け
パッケージ版のNode.jsをアンインストールする
nodebrew 使ってバージョン管理したいけどもうパッケージ版のNode.js入れちゃってる! って方はnodebrew をインストールする前にパッケージ版の方をアンインストールしちゃいましょう。
$ 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もアンインストールします。
$ sudo rm -rf ~/.npm
nvm でインストールしたNode.jsのアンインストール
私がnodebrewの前にnvm 使用していたので、そっちのアンインストール方法も。Node.jsの管理はnvm でも別にいいんですが、使いたい機能と好みでご自由に。なお、zsh派の方はnodebrewの方が相性が良いそうです。
$ vi ~/.bash_profile
nvm の設定を適用させるために.bash_profile に書いていた該当部分を削除します。人によってバージョン等は違うでその辺りはよしなに。
source ~/.nvm/nvm.sh
nvm use v0.10.30
export PATH=/Users/hogehoge/.nvm/v0.10.30/bin
上記を削除したら、:wq
をして保存。その後、.nvmフォルダを削除し、.bash_profile に即時反映させます。
$ rm -rf ~/.nvm
$ source ~/.bash_profile
パッケージ・nvmでインストールしていたNode.jsのアンインストールが終わったら、この記事の先頭から読んで試してみてください〜!
- 参考サイトSpecial Thanks!
- パッケージ管理システム Homebrew – Qiita
- Node.jsの管理をHomebrewからnodebrewに変える – Qiita
- 【Mac】nodebrewのインストールとコマンドなど使い方まとめ – TASK NOTES
- vim :: readonly のファイルを sudo で強制的に保存する – Tipsというかメモ