プラットフォーム別のNode.js環境構築メモ
CentOS6/Linux
CentOSの場合、nodejsとnpmの各パッケージはEPELレポジトリに収録されている。EPELを使用可能にするにはこちらを参照のこと。これが済んでいればyumだけで基本環境のインストールが出来る。
sudo yum install nodejs npm
ただしこれでOSにインストールされるのはやや古いバージョンである。
$ node -v
v0.10.33
$ npm -v
1.3.6
異なるバージョンのNode.jsが必要な場合はnvmを使用して切り替える。まずnvmコマンドをgitでダウンロードし、添付のスクリプトを実行して導入する。1
$ git clone https://github.com/creationix/nvm.git ~/.nvm
Initialized empty Git repository in ~/.nvm/.git/
remote: Counting objects: 3595, done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 3595 (delta 7), reused 0 (delta 0), pack-reused 3574
Receiving objects: 100% (3595/3595), 765.49 KiB | 304 KiB/s, done.
Resolving deltas: 100% (2060/2060), done.
$ source ~/.nvm/nvm.sh
nvmコマンドはエイリアスとしてシェル環境変数に組み込まれるため、新たな端末を開く度にnvm.shを再実行する必要がある。毎回使用するなら~/.bashrc
等に追記しておくと良い。
初期状態ではsystemインストールされたNode.jsが使われているのでnvm current
を実行するとsystemが返る。
$ nvm current
system
$ which node
/usr/bin/node
取り敢えず最新のNode.jsを使えるようにするには次のようにするだけで良い
$ nvm install 0
######################################################################## 100.0%
Now using node v0.12.2 (npm v2.7.4)
$ nvm current
v0.12.2
$ node -v
v0.12.2
$ which node
~/.nvm/versions/node/v0.12.2/bin/node
上記のようにnvmでインストールされるnodeコマンドは、ユーザ環境毎に独立している。環境切替はシェル環境変数に依るので、systemサービスレベルでNode.jsを使用する場合は注意しなければならない。
なおsystemおよびnvmで導入したnodeコマンドと各グローバルnode_modulesパスは次のようになる。これはつまりnpm install -g
で書き換えられる先がsudo不要になるということでもある。
|\|system|nvm|
|-:|:-|:-|
|node|/usr/bin/node|~/.nvm/versions/node/[VER]/bin/node|
|npm|/usr/bin/npm|~/.nvm/versions/node/[VER]/bin/npm|
|modeules|/usr/lib/node_modules|~/.nvm/versions/node/[VER]/lib/node_modules|
Mac OSX
Mac OSXの場合、公式サイトからインストーラパッケージをダウンロードしてきて実行するのがもっとも手軽だろう。だがnpmコマンドで各モジュールをインストールする段階でネイティブビルド環境(Xcode)を要求されたりすると途端に面倒なことになり、最終的な手間は以下のどれをとっても結局は大差なくなる。
- 公式サイトからインストーラを得て導入(/usr/local/bin/node)
- 公式サイトまたはGitHubからソースを得て./configure && make
- Mac Ports環境で port install nodejs(/opt/local/bin/node)
1番以外は結局Xcodeがなければ話にならない。なおXcode(それ自体はAppStoreから入手できる)のコマンドライン・デベロッパ・ツールの追加インストールは以下のコマンドをターミナルで実行する。2
$ xcode-select --install
nvmでのバージョン切替はLinuxと同じなので前項を参照のこと。
Windows
Windowsの場合はだいたい以下のシナリオがある。
- 公式サイトからインストーラを得て導入
- Visual Studio(Expressの場合はfor Web)にNTVSアドオンを追加する
- CygwinあるいはMinGW環境でGitHunソースからmakeする
- nodistで導入する
基本は1番だが、おすすめはWindowsらしい強力なIDEと一体化できる2番を更に追加した環境だ。開発PCでは1+2番、サービスサーバでは1番だけという使い分けが良いだろう。3番は余程の物好きでない限りおすすめしかねる。4番はもはやふるいやり方だがZIP配布なのでレジストリを汚すこともなくコンパクトな環境を作れるが環境変数設定等は全て手動なのでGUIインストーラを使えない場合の代替手段と見たほうが良い。3 4
nvmでのnodeバージョン管理はnvmwとnvm-windowsの2通りの実装がある。
前者はPython2.7+が更に必要なので、ActivePython等のインストールが要求される。後者ならスタンドアロンインストーラ配布なので手軽だ。