Posted at

Nodev0.8.x以降のパッケージのインストールパスがちょっと変だったので対処したメモ

More than 5 years have passed since last update.

※自分用なので参考にならないかもしれません。

npm install -gを使って新しいパッケージをインストールしてみたら、なぜかコマンドが見つからない状態になってた。


環境


  • MacOSX v10.8.1 (Mountain Lion)

  • Node v0.8.8 (Homebrewでインストール)

  • NPM v1.1.59


どこいった?

npm ls yeomanと実行してみると、

$ npm ls -g yeoman

[…]
/usr/local/share/npm/lib
└── yeoman@0.9.1

もともと Node v0.6でグローバルインストールしていたExpressでは、

$ npm ls -g express                                                                                                                             

[…]
/usr/local/share/npm/lib
└── (empty)

(empty)なはずはないのでおかしい。

$ npm bin -g

/usr/local/share/npm/bin
$ npm prefix -g
/usr/local/share/npm

/usr/local/bin/とかではなく、/usr/local/share/npm/bin/におかれてしまっている

$ ls /usr/local/share/npm/bin/

_yeomaninsight yeoman


気になること

Homebrewのオプションで、--without-npmっていうのがあるが、これを指定せずにアップデートしていて、いままで使っていたcurlコマンドでインストールしているものと置き換わったからパスが変わったのか?


brewinfo.sh

$ brew info node                                                                                                                                node: stable 0.8.8, HEAD

http://nodejs.org/
/usr/local/Cellar/node/0.8.8 (846 files, 13M) *
https://github.com/mxcl/homebrew/commits/master/Library/Formula/node.rb
==> Options
--without-npm
npm will not be installed
--enable-debug
Build with debugger hooks


対応

いまとなっては確かめようがないので、NODE_PATH環境変数とPATHを修正した。


NODE_PATH

新しいパスnpm prefix -gの結果を追加

export NODE_PATH=$NODE_PATH:$(npm prefix -g 2>/dev/null)/lib/node_modules


PATH

npm bin -gの結果を追加

export PATH=$PATH:$(npm bin -g 2>/dev/null)