NodeJS 4 和 5 npm 安装 bcrypt 和 db-migrate 失败
NodeJS 4 & 5 npm install fail for bcrypt and db-migrate
前段时间我安装了 NodeJS (v0.10.31) 并在一个项目上工作没有问题,但就在最近我决定更新到 Node v5.0.0。
一切都很好,直到我决定使用 bcrypt 和 db-migrate。调用命令 npm install 将无法吐出一长串详细信息,但没有关于问题的明确信息:
$ sudo npm install
> bcrypt@0.8.5 install /home/cavpollo/intuitiva/cirio/cirio-id/node_modules/bcrypt
> node-gyp rebuild
make: Entering directory `/home/cavpollo/intuitiva/cirio/cirio-id/node_modules/bcrypt/build'
CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt.o
CXX(target) Release/obj.target/bcrypt_lib/bcrypt_node/src.o
In file included from /home/cavpollo/.node-gyp/5.0.0/include/node/node.h:42:0,
from ../node_modules/nan/nan.h:24,
from ../src/bcrypt_node.cc:1:
/home/cavpollo/.node-gyp/5.0.0/include/node/v8.h:336:1: error: expected unqualified-id before ‘using’
/home/cavpollo/.node-gyp/5.0.0/include/node/v8.h:469:1: error: expected unqualified-id before ‘using’
/home/cavpollo/.node-gyp/5.0.0/include/node/v8.h:856:1: error: expected unqualified-id before ‘using’
In file included from ../node_modules/nan/nan.h:184:0,
from ../src/bcrypt_node.cc:1:
../node_modules/nan/nan_maybe_43_inl.h:13:1: error: expected unqualified-id before ‘using’
../node_modules/nan/nan_maybe_43_inl.h:16:1: error: expected unqualified-id before ‘using’
../node_modules/nan/nan_maybe_43_inl.h:19:12: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:24:12: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:31:1: error: ‘MaybeLocal’ does not name a type
...
[about 100 lines of log errors]
...
../node_modules/nan/nan_new.h:36:1: warning: control reaches end of non-void function [-Wreturn-type]
make: *** [Release/obj.target/bcrypt_lib/src/bcrypt_node.o] Error 1
make: Leaving directory `/home/cavpollo/intuitiva/cirio/cirio-id/node_modules/bcrypt/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.2.0-37-generic-pae
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/cavpollo/intuitiva/cirio/cirio-id/node_modules/bcrypt
gyp ERR! node -v v5.0.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm ERR! Linux 3.2.0-37-generic-pae
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v5.0.0
npm ERR! npm v3.3.10
npm ERR! code ELIFECYCLE
npm ERR! bcrypt@0.8.5 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bcrypt@0.8.5 install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the bcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls bcrypt
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/cavpollo/intuitiva/cirio/cirio-id/npm-debug.log
网络上似乎没有关于该错误的任何信息,使用 NodeJS V4.X.X 也没有任何帮助。
我的设置:
- Ubuntu 12.04
- 节点 v5.0.0
- npm v3.3.10
经过多次 google 搜索,有人指出对于 NodeJS V4(和更新版本)需要更新版本的 GCC(我认为是 4.8)。
如您所见,我当前的版本是 4.6.3:
$ gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
所以只需要更新它,并且能够在这些链接的帮助下完成:
How do I use the latest GCC 4.9 on Ubuntu 14.04
我最终使用的命令序列是:
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update
$ sudo apt-get install gcc-4.8 g++-4.8
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
再次检查 GCC 版本
$ gcc --version
gcc (Ubuntu 4.8.1-2ubuntu1~12.04) 4.8.1
在那之后我可以打电话给 'npm install' 并且一切顺利。
辛苦了谢谢。
正在将 NodeJS 从 v0.12.6 更新到 5.0.0
http://simon.fearby.com/blog/?p=2246
这一行更新对我有用。从这个linkhttps://github.com/ncb000gt/node.bcrypt.js/issues/351
中找到了答案
sudo apt-get install build-essential
Then install bcrypt:
npm install bcrypt
前段时间我安装了 NodeJS (v0.10.31) 并在一个项目上工作没有问题,但就在最近我决定更新到 Node v5.0.0。 一切都很好,直到我决定使用 bcrypt 和 db-migrate。调用命令 npm install 将无法吐出一长串详细信息,但没有关于问题的明确信息:
$ sudo npm install
> bcrypt@0.8.5 install /home/cavpollo/intuitiva/cirio/cirio-id/node_modules/bcrypt
> node-gyp rebuild
make: Entering directory `/home/cavpollo/intuitiva/cirio/cirio-id/node_modules/bcrypt/build'
CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt.o
CXX(target) Release/obj.target/bcrypt_lib/bcrypt_node/src.o
In file included from /home/cavpollo/.node-gyp/5.0.0/include/node/node.h:42:0,
from ../node_modules/nan/nan.h:24,
from ../src/bcrypt_node.cc:1:
/home/cavpollo/.node-gyp/5.0.0/include/node/v8.h:336:1: error: expected unqualified-id before ‘using’
/home/cavpollo/.node-gyp/5.0.0/include/node/v8.h:469:1: error: expected unqualified-id before ‘using’
/home/cavpollo/.node-gyp/5.0.0/include/node/v8.h:856:1: error: expected unqualified-id before ‘using’
In file included from ../node_modules/nan/nan.h:184:0,
from ../src/bcrypt_node.cc:1:
../node_modules/nan/nan_maybe_43_inl.h:13:1: error: expected unqualified-id before ‘using’
../node_modules/nan/nan_maybe_43_inl.h:16:1: error: expected unqualified-id before ‘using’
../node_modules/nan/nan_maybe_43_inl.h:19:12: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:24:12: error: ‘Maybe’ does not name a type
../node_modules/nan/nan_maybe_43_inl.h:31:1: error: ‘MaybeLocal’ does not name a type
...
[about 100 lines of log errors]
...
../node_modules/nan/nan_new.h:36:1: warning: control reaches end of non-void function [-Wreturn-type]
make: *** [Release/obj.target/bcrypt_lib/src/bcrypt_node.o] Error 1
make: Leaving directory `/home/cavpollo/intuitiva/cirio/cirio-id/node_modules/bcrypt/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.2.0-37-generic-pae
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/cavpollo/intuitiva/cirio/cirio-id/node_modules/bcrypt
gyp ERR! node -v v5.0.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm ERR! Linux 3.2.0-37-generic-pae
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v5.0.0
npm ERR! npm v3.3.10
npm ERR! code ELIFECYCLE
npm ERR! bcrypt@0.8.5 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bcrypt@0.8.5 install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the bcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls bcrypt
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/cavpollo/intuitiva/cirio/cirio-id/npm-debug.log
网络上似乎没有关于该错误的任何信息,使用 NodeJS V4.X.X 也没有任何帮助。
我的设置:
- Ubuntu 12.04
- 节点 v5.0.0
- npm v3.3.10
经过多次 google 搜索,有人指出对于 NodeJS V4(和更新版本)需要更新版本的 GCC(我认为是 4.8)。
如您所见,我当前的版本是 4.6.3:
$ gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
所以只需要更新它,并且能够在这些链接的帮助下完成:
How do I use the latest GCC 4.9 on Ubuntu 14.04
我最终使用的命令序列是:
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update
$ sudo apt-get install gcc-4.8 g++-4.8
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
再次检查 GCC 版本
$ gcc --version
gcc (Ubuntu 4.8.1-2ubuntu1~12.04) 4.8.1
在那之后我可以打电话给 'npm install' 并且一切顺利。
辛苦了谢谢。
正在将 NodeJS 从 v0.12.6 更新到 5.0.0 http://simon.fearby.com/blog/?p=2246
这一行更新对我有用。从这个linkhttps://github.com/ncb000gt/node.bcrypt.js/issues/351
中找到了答案sudo apt-get install build-essential
Then install bcrypt:
npm install bcrypt