gist

2012年3月11日日曜日

nvmでsudo npm install -g から卒業する

MacでNode.jsをpkgでインストールすると、nodeの実行ファイルが /usr/local/bin にインストールされます。

npm install でインストールしたパッケージは、/usr/local/lib/node_modules に配置されます。

グローバルインストール(npm install -g)すると、パーミッションエラーでインストールできないことがあります。

npm ERR! message EACCES, permission denied

回避のため、sudo npm install -g hoge みたいに sudo しておりました。後々、面倒です。

nvm をインストールして sudo npm install -g を卒業です。

nvm はNodeのバージョンを切り替えて実行できるシェルプログラムです。

インストール方法

$ git clone git://github.com/creationix/nvm.git ~/.nvm
$ source ~/.nvm/nvm.sh
$ nvm install v0.6.12
$ nvm use v0.6.12
Now using node v0.6.12
$ node -v
v0.6.12
$ which node
/Users/inouetomoyuki/.nvm/v0.6.12/bin/node

nvm install version で指定したバージョンのnodeをインストールして、nvm use version で使用するバージョンを指定できます。

このままですと、ターミナルを起動する度に、nvm.sh を実行する必要があって面倒です。

~/.bash_profile に以下のように記述しておくと便利です。

~/.bash_profile

source ~/.nvm/nvm.sh
nvm use v0.6.12
npm_dir=${NVM_PATH}_modules
export NODE_PATH=$npm_dir

ポイントは、NODE_PATHです。npm install のインストール先になります。

$ echo $NODE_PATH
/Users/inouetomoyuki/.nvm/v0.6.12/lib/node_modules

今のバージョンを調べるには、

$ nvm ls
v0.4.12 v0.6.11 v0.6.12
current:  v0.6.11

です。

パッケージの中には、rubyのgemを使ってインストールするものもあります。例えば design.io。

ruby にも、バージョンを切り替えられる rvm というシェルプログラムがあります。nvm はもともと rvm を node用に実装したものです。

こちらもインストールしておきましょう。

$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
$ rvm install 1.9.3
$ rvm use 1.9.3
$ rvm ls

rvm rubies

=> ruby-1.9.3-p125 [ x86_64 ]

# Default ruby not set. Try 'rvm alias create default <ruby>'.

# => - current
# =* - current && default
#  * - default

$ which ruby
/Users/inouetomoyuki/.rvm/rubies/ruby-1.9.3-p125/bin/ruby

これで大体のパッケージは sudo なしでグローバルインストールできると思います。

0 件のコメント: