読者です 読者をやめる 読者になる 読者になる

Mac Lionとnodeとnpm

Lionにnpmをインストールしようとしててこずったのでめもめも。
2012年5月現在の状況です。

動作環境:

  • Mac OS X 10.7.2 Lion
  • Homebrew 0.8.1
  • node 0.6.7を0.6.15に変更

インストールしたモノ:

  • npm 1.1.19

はまったこと:
Homebrewでインストールされたnode v0.6.7の状態で、以下のコマンドからnpmをインストールしようとすると、エラーで受け付けてもらえなかった。

$ curl http://npmjs.org/install.sh | sh 
・・・
version:
bsdtar 2.8.3 - libarchive 2.8.3
install npm@1.1
fetching: http://registry.npmjs.org/npm/-/npm-1.1.19.tgz
0.6.7
1.1.19
cleanup prefix=/usr/local

All clean!

npm ERR! Error: UNKNOWN, unknown error '/usr/local/bin/npm'
npm ERR! You may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>
・・・

reportしてって言われても・・・と思ってググったら、nodeのバージョンが古いので似たようなエラーが出てる人がいた。
でも、いくらbrew upgrade nodeしても、nodeのバージョンは0.6.7にしかならず。
しかたないので、本家からnodeのMac用パッケージでインストールして0.6.15にバージョンアップ。
brewでインストールしたnodeとの競合も特になし。

で、改めてnpmインストールコマンドをすると、

version:
bsdtar 2.8.3 - libarchive 2.8.3
install npm@1.1
fetching: http://registry.npmjs.org/npm/-/npm-1.1.19.tgz
0.6.15
1.1.19
cleanup prefix=/usr/local

All clean!

npm ERR! Error: EPERM, chmod '/usr/local/bin/npm'
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.
・・・

今度はpermissionですか。
で、コマンドにsudoをつける場所は頭じゃなくって、パイプの後ろだった。

$ curl http://npmjs.org/install.sh | sudo sh
・・・
version:
bsdtar 2.8.3 - libarchive 2.8.3
install npm@1.1
fetching: http://registry.npmjs.org/npm/-/npm-1.1.19.tgz
0.6.15
1.1.19
cleanup prefix=/usr/local

All clean!
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@1.1.19 /usr/local/lib/node_modules/npm
It worked
$ npm -v                                                 [~/coffeeapp/RailsHackathon2012]
1.1.19

はい。無事にインストール。
npmのパッケージを使いたかっただけのに、npmインストールで時間くってしまった。