NodeJS 4& 5 npm安装失败,bcrypt和db-migrate [英] NodeJS 4 & 5 npm install fail for bcrypt and db-migrate

查看:359
本文介绍了NodeJS 4& 5 npm安装失败,bcrypt和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重建
$ b make:进入目录`/ home / cavpollo / intuitiva / cirio / cirio-id / node_modules / bcrypt / build'
CXX(target)Release / obj.target / bcrypt_lib / src / blowfish.o
CXX(目标)Release / obj.target / bcrypt_lib / src / bcrypt.o
CXX(目标)Release / obj.target / bcrypt_lib / bcrypt_node / src.o
从/home/cavpollo/.node-gyp/5.0.0/include/node/node.h:42:0包含的文件中,从../node_modules/nan/nan.h:24中获得
,来自../src/bcrypt_node.cc:1的

/home/cavpollo/.node-gyp/5.0.0/include/node/v8.h:336:1:错误:预期'使用'之前的非限定ID
/home/cavpollo/.node-gyp/5.0.0/include/node/v8.h:469:1:错误:使用'$ b $之前预期的非限定ID b /home/cavpollo/.node-gyp/5.0.0/include/node/v8.h:856:1:错误:在'使用'之前预期的非限定ID
在../node_modules/包含的文件中nan / nan.h:184:0,
来自../src/bcrypt_node.cc:1:
../node_modules/nan/nan_maybe_43_inl.h:13 :1:错误:期望'使用'
../node_modules/nan/nan_maybe_43_inl.h:16:1之前的非限定ID:错误:预期'使用'之前的非限定ID
../node_modules /nan/nan_maybe_43_inl.h:19:12:错误:'Maybe'没有命名一个类型
../node_modules/nan/nan_maybe_43_inl.h:24:12:错误:'Maybe'没有命名一个类型
../node_modules/nan/nan_maybe_43_inl.h:31:1:错误:'MaybeLocal'未命名类型
...
[约100行日志错误]
...
../node_modules/nan/nan_new.h:36:1:warning:控制到达非void函数结束[-Wreturn-type]
make:*** [释放/ obj.target / bcrypt_lib / src / bcrypt_node.o]错误1
make:离开目录`/ home / cavpollo / intuitiva / cirio / cirio-id / node_modules / bcrypt / build'
gyp ERR !构建错误
gyp ERR!堆栈错误:`make`失败,退出代码:2
gyp ERR!在ChildProcess.onExit(/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR!在emitTwo堆栈(events.js:87:13)
gyp ERR!堆栈在ChildProcess.emit(events.js:172:7)
gyp ERR!堆栈在Process.ChildProcess._handle.onexit(internal / child_process.js:200:12)
gyp ERR!系统Linux 3.2.0-37-generic-pae
gyp ERR!命令/ usr / local / bin / node/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.jsrebuild
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!不行
npm ERR! Linux 3.2.0-37-generic-pae
npm ERR! argv/ usr / local / bin / node/ usr / local / bin / npminstall
npm ERR!节点v5.0.0
npm ERR! npm v3.3.10
npm ERR!代码ELIFECYCLE

npm ERR! bcrypt@0.8.5安装:`node-gyp rebuild`
npm ERR!退出状态1
npm ERR!
npm ERR! bcrypt@0.8.5安装脚本'node-gyp rebuild'失败。
npm ERR!确保安装了最新版本的node.js和npm。
npm ERR!如果这样做,这很可能是bcrypt包的问题,​​
npm ERR!而不是npm本身。
npm ERR!告诉作者这在你的系统上失败了:
npm ERR! node-gyp重建
npm ERR!您可以通过以下方式获得他们的信息:
npm ERR! npm所有者ls bcrypt
npm ERR!上面可能还有其他日志记录输出。

npm ERR!请包含以下任何支持请求的文件:
npm ERR! /home/cavpollo/intuitiva/cirio/cirio-id/npm-debug.log

它看起来不像在网上关于错误的任何信息,并使用NodeJS V4.XX也没有帮助。



我的设置:




  • Ubuntu 12.04

  • 节点v5.0.0

  • npm v3.3.10


解决方案

经过很多谷歌搜索之后,有人指出,对于NodeJS V4(及更新版本)GCC的更新版本(4.8我认为)。



我的当前版本是4.6.3,您可以看到:

  $ gcc --version 
gcc(Ubuntu / Linaro 4.6.3-1ubuntu5)4.6.3

所以所需要的只是更新它,并且能够在这些链接的帮助下完成它:

如何安装Gcc 4.8



如何在Ubuntu 14.04上使用最新的GCC 4.9



我最终使用的命令是:

$ $ p $ $ $ sudo apt-get install python-software-properties
$ sudo add- apt-repository ppa:ubuntu-toolchain -r / test $ b $ sudo apt-get update $ b $ 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',事情就完美无缺。


Some time ago I installed NodeJS (v0.10.31) and worked on a project without problems, but just recently I decided to update to Node v5.0.0. Everything was fine until I decided to use bcrypt and db-migrate. Calling the command npm install would fail spitting out a long list of details but no clear information about the problem:

$ 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    

It doesnt seem to be any info on the web about the error, and using NodeJS V4.X.X didnt help at all either.

My setup:

  • Ubuntu 12.04
  • node v5.0.0
  • npm v3.3.10

解决方案

After much google searching, somebody pointed out that for NodeJS V4 (and newer versions) a newer version of GCC is needed (4.8 I think).

My current version was a 4.6.3 as you can see:

$ gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

So all it took was updating it, and was able to do it with the help of these links:

How to install Gcc 4.8

How do I use the latest GCC 4.9 on Ubuntu 14.04

The sequence of commands I ended up using were:

$ 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

Checking again the GCC version

$ gcc --version
gcc (Ubuntu 4.8.1-2ubuntu1~12.04) 4.8.1

After that I was able to call 'npm install' and things went on flawlessly.

这篇关于NodeJS 4& 5 npm安装失败,bcrypt和db-migrate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆