gist

2012年1月10日火曜日

npm install でエラーになったとき。npm ERR! Could not create

Nodeでは、npmと呼ばれるパッケージ管理システムを使ってパッケージをインストールします。

グローバルインストールするとき、-gオプションをつけますが、/usr/local/lib/node_moduleディレクトリに書き込み権限がない場合、以下のようなエラーが表示されます。

[inoue@air express_test]$ npm install express -g
npm http GET https://registry.npmjs.org/express
npm http 200 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/express/-/express-2.5.5.tgz
npm http 200 https://registry.npmjs.org/express/-/express-2.5.5.tgz
npm ERR! Could not create /usr/local/lib/node_modules/___express.npm
npm ERR! error installing express@2.5.5
npm ERR! Error: EACCES, permission denied '/usr/local/lib/node_modules/___express.npm'
npm ERR! Report this *entire* log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>
npm ERR! 
npm ERR! System Darwin 11.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "express" "-g"
npm ERR! cwd /Users/inoue/Dropbox/Projects/node/mocha_test
npm ERR! node -v v0.6.7
npm ERR! npm -v 1.1.0-beta-10
npm ERR! path /usr/local/lib/node_modules/___express.npm
npm ERR! code EACCES
npm ERR! message EACCES, permission denied '/usr/local/lib/node_modules/___express.npm'
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/inoue/Dropbox/Projects/node/mocha_test/npm-debug.log
npm not ok

この場合、sudoコマンドを使ってインストールします。

[inoue@air mocha_test]$ sudo npm install express -g
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/connect
npm http GET https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/mkdirp/0.0.7
npm http 200 https://registry.npmjs.org/mkdirp/0.0.7
npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.0.7.tgz
npm http 200 https://registry.npmjs.org/mime
npm http 200 https://registry.npmjs.org/qs
npm http 200 https://registry.npmjs.org/connect
npm http GET https://registry.npmjs.org/connect/-/connect-1.8.5.tgz
npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.0.7.tgz
npm http 200 https://registry.npmjs.org/connect/-/connect-1.8.5.tgz
npm http GET https://registry.npmjs.org/formidable
npm http 200 https://registry.npmjs.org/formidable
/usr/local/bin/express -> /usr/local/lib/node_modules/express/bin/express
express@2.5.5 /usr/local/lib/node_modules/express 
%u251C%u2500%u2500 mkdirp@0.0.7
%u251C%u2500%u2500 qs@0.4.0
%u251C%u2500%u2500 mime@1.2.4
%u2514%u2500%u2500 connect@1.8.5

エラーをよく読めば「npm ERR! Error: EACCES, permission denied」とありますので気づくと思います。

0 件のコメント: