npm install mongodb で ‘REPLACE_INVALID_UTF8’ is not a member of ‘v8::String’ エラーが出る

はじめに

 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: `make` failed 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)

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください