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

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

メニューを閉じる