はじめに
2015/10/06 時点で、CentOS7 に mongodb を npm コマンドでインストールしようとすると、タイトルのエラーが発生しました。mongodb が依存する kerberos のバージョンが 0.0.9 から 0.0.15 になったところでエラーが発生していました。
解決策としては、下記あたりになるでしょうか。
- kerberos 0.0.9 をバージョン指定してインストールする
- mongodb 2.0.22 をバージョン指定してインストールする
回避方法 その1
エラーの原因である kerberos のバージョン 0.0.15 の代わりに、0.0.9 を指定してインストールします。
$ npm install mongodb kerberos@"0.0.9"
package.json に記述する際は、dependencies に下記のように指定しておくとよいでしょう。
"kerberos": "0.0.9",
"mongodb": "~2.0.45"
回避方法 その2
エラーが出なくなる最新のバージョン 2.0.22 を指定してインストールします。
$ npm install mongodb@"<=2.0.22"
package.json に記述する際は、dependencies に下記のように指定しておくとよいでしょう。
"mongodb": "~2.0.22"
調査結果メモ
正常完了時 (mongodb 2.0.22)
npm http GET https://registry.npmjs.org/mongodb npm http 304 https://registry.npmjs.org/mongodb npm http GET https://registry.npmjs.org/mongodb-core/1.1.17 npm http GET https://registry.npmjs.org/readable-stream/1.0.31 npm http 304 https://registry.npmjs.org/mongodb-core/1.1.17 npm http 304 https://registry.npmjs.org/readable-stream/1.0.31 npm http GET https://registry.npmjs.org/isarray/0.0.1 npm http GET https://registry.npmjs.org/string_decoder npm http GET https://registry.npmjs.org/inherits npm http GET https://registry.npmjs.org/core-util-is npm http 304 https://registry.npmjs.org/isarray/0.0.1 npm http 304 https://registry.npmjs.org/inherits npm http 304 https://registry.npmjs.org/string_decoder npm http 304 https://registry.npmjs.org/core-util-is npm http GET https://registry.npmjs.org/bson npm http GET https://registry.npmjs.org/mkdirp/0.5.0 npm http GET https://registry.npmjs.org/rimraf/2.2.6 npm http GET https://registry.npmjs.org/kerberos/0.0.9 npm http 304 https://registry.npmjs.org/mkdirp/0.5.0 npm http 304 https://registry.npmjs.org/bson npm http 304 https://registry.npmjs.org/rimraf/2.2.6 npm http 304 https://registry.npmjs.org/kerberos/0.0.9 npm http GET https://registry.npmjs.org/minimist/0.0.8 npm http 304 https://registry.npmjs.org/minimist/0.0.8 npm http GET https://registry.npmjs.org/nan/1.6.2 npm http 304 https://registry.npmjs.org/nan/1.6.2 npm http GET https://registry.npmjs.org/nan > kerberos@0.0.9 install /home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/kerberos > (node-gyp rebuild 2> builderror.log) || (exit 0) npm http 304 https://registry.npmjs.org/nan > bson@0.2.22 install /home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/bson > (node-gyp rebuild 2> builderror.log) || (exit 0) make: ディレクトリ/home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/kerberos/build' に入ります
CXX(target) Release/obj.target/kerberos/lib/kerberos.o
make: ディレクトリ
/home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/bson/build' に入ります CXX(target) Release/obj.target/bson/ext/bson.o make: ディレクトリ/home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/kerberos/build' から出ます
SOLINK_MODULE(target) Release/obj.target/bson.node
SOLINK_MODULE(target) Release/obj.target/bson.node: Finished
COPY Release/bson.node
make: ディレクトリ
/home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/bson/build' から出ます mongodb@2.0.22 node_modules/mongodb tqq readable-stream@1.0.31 (isarray@0.0.1, inherits@2.0.1, string_decoder@0.10.31, core-util-is@1.0.1) mqq mongodb-core@1.1.17 (rimraf@2.2.6, mkdirp@0.5.0, kerberos@0.0.9, bson@0.2.22)
エラー発生時 (mongodb 2.0.23 以上)
npm http GET https://registry.npmjs.org/mongodb npm http 304 https://registry.npmjs.org/mongodb npm http GET https://registry.npmjs.org/mongodb/-/mongodb-2.0.23.tgz npm http 200 https://registry.npmjs.org/mongodb/-/mongodb-2.0.23.tgz npm http GET https://registry.npmjs.org/mongodb-core/1.1.19 npm http GET https://registry.npmjs.org/readable-stream/1.0.31 npm http 304 https://registry.npmjs.org/readable-stream/1.0.31 npm http 200 https://registry.npmjs.org/mongodb-core/1.1.19 npm http GET https://registry.npmjs.org/mongodb-core/-/mongodb-core-1.1.19.tgz npm http 200 https://registry.npmjs.org/mongodb-core/-/mongodb-core-1.1.19.tgz npm http GET https://registry.npmjs.org/core-util-is npm http GET https://registry.npmjs.org/isarray/0.0.1 npm http GET https://registry.npmjs.org/string_decoder npm http GET https://registry.npmjs.org/inherits npm http 304 https://registry.npmjs.org/inherits npm http 304 https://registry.npmjs.org/string_decoder npm http 304 https://registry.npmjs.org/isarray/0.0.1 npm http 304 https://registry.npmjs.org/core-util-is npm http GET https://registry.npmjs.org/bson npm http GET https://registry.npmjs.org/mkdirp/0.5.0 npm http GET https://registry.npmjs.org/rimraf/2.2.6 npm http GET https://registry.npmjs.org/kerberos npm http 304 https://registry.npmjs.org/mkdirp/0.5.0 npm http 304 https://registry.npmjs.org/rimraf/2.2.6 npm http 304 https://registry.npmjs.org/kerberos npm http 304 https://registry.npmjs.org/bson npm http GET https://registry.npmjs.org/minimist/0.0.8 npm http 304 https://registry.npmjs.org/minimist/0.0.8 npm http GET https://registry.npmjs.org/nan npm http 304 https://registry.npmjs.org/nan > kerberos@0.0.15 install /home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/kerberos > (node-gyp rebuild) || (exit 0) > bson@0.2.22 install /home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/bson > (node-gyp rebuild 2> builderror.log) || (exit 0) make: ディレクトリ/home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/kerberos/build' に入ります
CXX(target) Release/obj.target/kerberos/lib/kerberos.o
make: ディレクトリ
/home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/bson/build' に入ります CXX(target) Release/obj.target/bson/ext/bson.o In file included from ../lib/kerberos.h:9:0, from ../lib/kerberos.cc:1: ../node_modules/nan/nan.h:316:47: エラー: ‘REPLACE_INVALID_UTF8’ is not a member of ‘v8::String’ static const unsigned kReplaceInvalidUtf8 = v8::String::REPLACE_INVALID_UTF8; ^ make: *** [Release/obj.target/kerberos/lib/kerberos.o] エラー 1 make: ディレクトリ/home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/kerberos/build' から出ます
gyp ERR! build error
gyp ERR! stack Error:
makefailed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack at ChildProcess.emit (events.js:98:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Linux 2.6.32-042stab092.2
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/kerberos
gyp ERR! node -v v0.10.36
gyp ERR! node-gyp -v v0.10.6
gyp ERR! not ok
SOLINK_MODULE(target) Release/obj.target/bson.node
SOLINK_MODULE(target) Release/obj.target/bson.node: Finished
COPY Release/bson.node
make: ディレクトリ
/home/mntuser/git/countup-sample-ssdn-heroku/node_modules/mongodb/node_modules/mongodb-core/node_modules/bson/build' から出ます mongodb@2.0.23 node_modules/mongodb tqq readable-stream@1.0.31 (isarray@0.0.1, inherits@2.0.1, string_decoder@0.10.31, core-util-is@1.0.1) mqq mongodb-core@1.1.19 (rimraf@2.2.6, mkdirp@0.5.0, kerberos@0.0.15, bson@0.2.22)