AstroBlog

宇宙系大学院生の戯言

npm install mongoでインストールできなかったときの解決法

SPONSORED LINK

npm install mongo -g

とやったら以下のようなエラーが出て、解決できたので書きます。

npm WARN enoent ENOENT: no such file or directory, open '/package.json'
npm WARN !invalid#1 No description
npm WARN !invalid#1 No repository field.
npm WARN !invalid#1 No README data
npm WARN !invalid#1 No license field.
npm ERR! Darwin 15.3.0
npm ERR! argv "/Users/kashiwadayuuki/.nodebrew/node/v5.5.0/bin/node" "/Users/kashiwadayuuki/.nodebrew/current/bin/npm" "install" "mongo"
npm ERR! node v5.5.0
npm ERR! npm  v3.7.1
npm ERR! path /
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, access '/'] errno: -13, code: 'EACCES', syscall: 'access', path: '/' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Darwin 15.3.0
npm ERR! argv "/Users/kashiwadayuuki/.nodebrew/node/v5.5.0/bin/node" "/Users/kashiwadayuuki/.nodebrew/current/bin/npm" "install" "mongo"
npm ERR! node v5.5.0
npm ERR! npm  v3.7.1
npm ERR! path npm-debug.log.852341184
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall open

npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.852341184'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, open 'npm-debug.log.852341184']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'open',
npm ERR!   path: 'npm-debug.log.852341184' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /npm-debug.log

こんなエラーが出て2時間くらい見事にハマってました。

解決した方法

いろいろ調べまくっていると、node_modulesを一度削除したほうがいいことが判明。

npm bin

でnode_modulesの場所が判明。

/usr/local/bin/node_modules/.bin

と出ました。

とりあえず/usr/local/binに移動

cd /usr/local/bin

そして

rm -rf node_modules

でめでたくnode_modulesを削除することに成功。

npm cache clean

でnpmのキャッシュをクリーン。

npm install npm -g

でもう一度npmをインストール。

そしてもう一度

npm install mongo -g
/Users/kashiwadayuuki/.nodebrew/node/v5.5.0/lib
└─┬ mongo@0.1.0 
  └─┬ mongodb@2.1.6 
    ├── es6-promise@3.0.2 
    ├─┬ mongodb-core@1.3.1 
    │ ├── bson@0.4.21 
    │ └─┬ require_optional@1.0.0 
    │   ├── resolve-from@2.0.0 
    │   └── semver@5.1.0 
    └─┬ readable-stream@1.0.31 
      ├── core-util-is@1.0.2 
      ├── inherits@2.0.1 
      ├── isarray@0.0.1 
      └── string_decoder@0.10.31 

ここまでやったのですが、

mongo

とやってもmongodbが反応することはなく、このやり方はあきらめてhomebrewで入れることにしました。

まず、homebrewのアップデート

brew update

mongodのbインストール

brew install mongodb

そして自動起動設定。

# 起動スクリプトのシンボリックリンク追加
ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

# 自動起動をさせたい場合はこちら
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

# もし自動起動をしたくない場合に手動で起動する場合はこちら
mongod --config /usr/local/etc/mongod.conf

mongodbの動作確認

$ mongo

MongoDB shell version: 3.2.1
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
> 

npmでなぜインストールできなかったかはわからずじまいになってしまいました。 わかる方いらっしゃったらコメント等いただければうれしいです。