我正在尝试在CentOS服务器上安装bcrypt但是我收到以下错误:
info postuninstall bcrypt@0.5.0
ERR! bcrypt@0.5.0 install: `make build`
ERR! `sh "-c" "make build"` failed with 2
ERR!
ERR! Failed at the bcrypt@0.5.0 install script.
ERR! This is most likely a problem with the bcrypt package,
ERR! not with npm itself.
ERR! Tell the author that this fails on your system:
ERR! make build
ERR! You can get their info via:
ERR! npm owner ls bcrypt
ERR! There is likely additional logging output above.
ERR!
ERR! System Linux 2.6.18-028stab095.1
ERR! command "nodejs" "/usr/bin/npm" "install" "bcrypt"
ERR! cwd /root/grouplo
ERR! node -v v0.6.15
ERR! npm -v 1.1.16
ERR! code ELIFECYCLE
ERR! message bcrypt@0.5.0 install: `make build`
ERR! message `sh "-c" "make build"` failed with 2
ERR! errno {}
我该怎么做才能解决这个问题? 谢谢,
答案 0 :(得分:12)
还有bcrypt的native-js版本,不需要编译。 https://github.com/shaneGirish/bcrypt-nodejs
npm install bcrypt-nodejs
api与编译版本非常相似。以下内容直接来自自述文件
同步
var hash = bcrypt.hashSync("bacon");
bcrypt.compareSync("bacon", hash); // true
bcrypt.compareSync("veggies", hash); // false
异步
bcrypt.hash("bacon", null, null, function(err, hash) {
// Store hash in your password DB.
});
// Load hash from your password DB.
bcrypt.compare("bacon", hash, function(err, res) {
// res == true
});
bcrypt.compare("veggies", hash, function(err, res) {
// res = false
});
答案 1 :(得分:6)
对我来说,答案是确保我安装了gcc,openssl和node-gyp。
要安装gcc和openssl,请使用yum:
sudo yum install gcc-c++ openssl-devel
要安装node-gyp(全局),请使用npm:
npm install -g node-gyp
然后bpmpt的npm安装在centos上运行得很好
答案 2 :(得分:5)
我在npm install bcrypt上遇到了同样的问题。 另一种选择是从源代码安装它。
git clone git://github.com/ncb000gt/node.bcrypt.js.git
cd node.bcrypt.js
node-gyp configure
node-gyp build
将node.bcrypt.js文件夹重命名为bcrypt,并将其移动到项目的node_modules中。
您可以通过执行npm install -g node-gyp(-g全局安装)来安装node-gyp。
答案 3 :(得分:1)
在新发布的bcrypt后几个小时内或者在发布新的NodeJS版本几天后,预先建立的二进制文件通常可用于bcrypt。
但请记住,二进制文件仅为方便起见而提供。
如果您看到如下错误:
`您需要在CentOS / RHEL / Fedora
上使用以下软件包gcc-c++
- 为了安装编译器链来编译节点模块。make
- 按node-gyp运行生成的Makefile,按顺序调用编译器python
- RHEL和CentOS附带所需的python版本确保使用此命令
安装所有依赖项 yum install -y gcc-c++ make
然后继续进行bcrypt安装。
对于其他系统,请参阅:https://github.com/kelektiv/node.bcrypt.js/wiki/Installation-Instructions
答案 4 :(得分:0)
我也遇到了这个问题,结果是我的 node
与 bcrypt
不兼容。我使用的是节点版本 lts 12
,但我在 package.json
中的 bcrypt 版本是 5
,它必须是 3
。
您可以检查node和bcrypt不同版本here的兼容性。
希望对某人有帮助